内部类的问题,嵌套的类.
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 (对象名)
如果定义类里面定义函数有很多属性,在函数没调用的时候不具有该函数的属性,调用的时候才有。