总结

在不同文件中pickle。load类对象的时候要先导入类

把对象中所有的相同的东西放到静态字段中 (静态字段出现的目的就是为了节省内存,不用再重复创建)

一般情况下:自己访问自己的字段

规则:普通字段只能对象访问,静态字段用类去访问(万不得已可以使用访问)

类里面的方法必须用对象去访问

静态字段代码加载的时候

普通方法------>静态方法(1、去除self 2、加@staticmethod)类调用执行,适用于不用封装在对象中的值时候,可以节省内存

普通方法------>类方法 (1、self换成cls(输出的话为类名) 2、加classmethod)

普通方法------>属性(加@property) 将方法伪造成字段去访问(注意:1、用对象调用 2、不用加括号就可以执行)

成员修饰符: 私有字段:在字段前加__如(__字段),自能在内部访问,外部访问不到,如果有继承关系,也只有自己能访问,子类也不能执行

ps:一般别用   __类名.__xxx

类后面加括号执行__init__(self)

对象后面加(),执行__call__(self)方法

对象后面加[],执行__getitme__(self)方法

obj["k1"] = 123执行__setitme__(self,k1)方法

del boj["k1"] 执行__delitme__(self,k1)方法

print(对象)的时候执行__str__(self)方法,没有str方法的时候输出一个类的内存地址

类对象默认是不可以迭代的,如果想要循环一个对象的话就执行__iter__(self)方法

__dict__方法用于以字典的方式获取对象或类中封装的数据

如果既想执行子类的某一个方法,又想执行父类中相同的方法,就在子类的某一个函数下面写super(父类名,self).某方法

如果想在不修改原码的情况下,想在输出内容前后加上某些操作的话,可以用类的继承 如下:

class Foo(Too):

  def f1(self): 

    print("123")

     super(Too,self).f1()

__import__("路径",formlist = True) 一定要写formlist,应为如果路径要是多层的话,不加的话只能找一层,加上的话就是找到底

单例模式:用于创建单个实例

class Foo:
	instance = None	
	def __init__(self,name):
	   self.name = name	
	@classmethod
	def get_instance(cls):
	  if cls.instance:
		reture cls.instance
	  else:
		obj = cls("alex")
		css.instance = obj
		reture obj
			
obj1 = Foo.get_instance()
print(obj1)
obj2 = Foo.get_instance()
print(obj2)

异常处理: 通过异常处理,避免出现大黄页

原文地址:https://www.cnblogs.com/luxiaojun/p/5631848.html