三大特性:封装,继承,多态
成员:
字段 静态字段(每个对象有一份)、普通字段(每个对象都有不同的数据)
方法 类方法(@classmethodcls)、静态方法(@staticmethod无需使用对象封装内容) 、 普通方法(使用对象中的数据)
特性 普通特性(@property讲方法伪造成字段)
判断类执行还是对象执行
self 对象调用,property
无self,类调用
成员修饰符:
共有
私有 __ 私有可以间接访问
私有字段__只有自己内部能访问,父类子类也无法访问到
class Foo:
xo = "xo"
__xo="xo"
def __init__(self):
self.__name = "我"
def __a(self):
print("私有")
def b(self):
#通过可以被外面访问的对象访问私有
self.__a()
Foo.xo
#报错
#Foo.__xo
obj = Foo()
#报错
#print(obj.name)
obj.b()
>>>
私有
__init__初始化
__del__对象结束时执行
__call__对象(), obj = fun() obj()
class fun():
def __init__(self):
print("init")
def __call__(self, *args, **kwargs):
print("call")
r = fun()
r()
>>>
init
call
字典 /列表
__getitem__
__setitem__
__delitem__
class ddict():
#以字典的形式输出内容
def __getitem__(self, item):
print(item)
def __setitem__(self, key, value):
print(key,value)
def __delitem__(self, item):
print(item )
r = ddict()
r["aaaa"]
r["aa"]=123
del r['aas']
r[1:3:2]
r[1:3]=[11,22,33]
del r[1:3]
>>>
aaaa
aa 123
aas
slice(1, 3, 2)
slice(1, 3, None) [11, 22, 33]
slice(1, 3, None)
__doc__注释