类和对象

__new__(cls,*agrs,**kwargs):

   在类调用init方法时,new方法决定是否要用init方法,因为new可以调用其他类的方法,或者返回别的对象来

   作为本类的实例;
   new()方法时在类准备将自身实例化时调用;

    new()方法始终都是类的静态方法,即使没有被加上静态方法装饰器;

python学习日志8

对象属性 私有和共有  :  对属性进行私有化 __属性,外部访问不到,也不可对属性进行赋值

python学习日志8

def __str__() 一个类的实例变成str,需要用特殊方法__str__()

公有方法和私有方法;
         私有方法在方法前加两个下划线:def __text():

封装  2步
   (1)把属性变成私有
   (2)用set()和get()函数写一个方法 

python学习日志8
自动销毁方法:__del__(): 当对象没有引用的时候,或程序结束的时候,程序自动调用__del__()
python学习日志8
测试对象有多少次引用 

    import sys

    t=T()

    sys.getrefcount(t)返回2  从2开始
python学习日志8
访问私有属性可以通过 对象._类名__属性访问到(不建议用这个方法)

id()函数 查看对象的内存地址;

类属性:属于类成员,对象共有的

    类方法:cls 表明是 类

                  在方法上添加 @classmethod装饰器

                  def class_method(cls):

                  可以通过类方法调用类属性,也可以通过对象调用类属性;
   
    修改类属性的2种方式:

                  1.类名.类属性=... 
                  2.实例对象__class__类属性=...

    静态方法:前面加@staticmethod,静态方法可以加参数,与类和对象都没有关系,也可以通过类和对象调用;
python学习日志8
dir()   __dir__  展示一个类/对象的内部属性和函数;
python学习日志8










相关文章: