python定义类的构造和析构方法

内部类的问题,嵌套的类.

class Milo():
     class Test():
           varl='我是内部类'
      name='csvt'
可以看出name 和class是平级的如果要调用内部类Test的话,也要实例化

zou=Milo

zout=zou.Test()

zout.var1 就可调用

或者zoui=Milo.Test()
魔术方法,也可以称之为内置方法

 内置方法  说明
 __init__(self,...)  初始化对象,在创建新对象时调用
 __del__(self)  释放对象,在对象被删除之前调用
 __new__(cls,*args,**kwd)  实例的生成操作
 __str__(self)  在使用print语句时被调用
 __getitem__(self,key)  获取序列的索引key对应的值,等价于seq[key]
 __len__(self)  在调用内联函数len()时被调用
 __cmp__(stc,dst)  比较两个对象src和dst
 __getattr__(s,name)  获取属性的值
 __setattr__(s,name,value)  设置属性的值
 __delattr__(s,name)  删除name属性
 __getattribute__()  __getattribute__()功能与__getattr__()类似
 __gt__(self,other)  判断self对象是否大于other对象
 __lt__(slef,other)  判断self对象是否小于other对象
 __ge__(slef,other)  判断self对象是否大于或者等于other对象
 __le__(slef,other)  判断self对象是否小于或者等于other对象
 __eq__(slef,other)  判断self对象是否等于other对象
 __call__(self,*args)  把实例对象作为函数调用
构造函数:

用于初始化类的内部状态,python提供的构造函数是__init__();

__init__方法是可选的,如果不提供,python会给出一个默认的__init__方法;

一般对数据的获取需要自定义的get和set方法

只要构造函数被实例化就被调用,不需要单独处理

析构函数:

用于释放对象占有的资源,python提供的析构函数是__del__();

__del__()也是可选的,如果不提供,则python会在后台提供默认析构函数,如果要

显示的调用析构函数,可以使用del关键字,方式如下:

del (对象名)


 如果定义类里面定义函数有很多属性,在函数没调用的时候不具有该函数的属性,调用的时候才有。



你可能感兴趣的:(python面向对象)