#__module__ __class__
目前成都創(chuàng)新互聯(lián)公司已為上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機(jī)、網(wǎng)站托管、服務(wù)器租用、企業(yè)網(wǎng)站設(shè)計(jì)、浉河網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
Lib\aa.py
classC:
def__init__(self):
self.name='lwb'
當(dāng)前目錄
index.py
fromlib.aaimportC
obj=C()
print( obj.__module__)#輸出類來自哪個(gè)模塊 輸出lib.aa ,即:輸出模塊
print(obj.__class__)#輸出類本身名 輸出類 lib.aa.C
#__dict__ __doc__ __str__
class Dog(object):
'''定義Dog類'''
def__init__(self,name):
self.name=name
self.__food=None#空變量
@property #方法轉(zhuǎn)屬性(函數(shù)轉(zhuǎn)變量)
defeat(self):
print("%s is eating %s"%(self.name,self.__food))#先傳一個(gè)空變量 self.__food
@eat.setter #修改
defeat(self,food):
print("set to food:",food)
self.__food=food#將food傳入 空變量
@eat.deleter#刪除
defeat(self):
delself.__food
print("刪完了")
def__call__(self,*args,**kwargs):
print("runing call",args,kwargs)
def__str__(self):
return"
d=Dog("chenronghua")
d()#加了括號(hào)不能引用 調(diào)用的是__call__方法
d(1,2,3,name1="lei")#調(diào)用的是__call__方法,還可以傳入?yún)?shù)字典
Dog("chenronghua")()
#查看屬性
Print(Dog.__doc__)#輸出類的描述信息
print(Dog.__dict__)#__dict__ 打印類里的所有屬性,不包括實(shí)例屬性
print(d.__dict__)#__dict__ 打印所有實(shí)例屬性,不包括類屬性
print(d)#本來打印d這個(gè)對(duì)象的內(nèi)存地址 定義__str__ 之后 ,就以__str__下的特定顯示方式顯示,不在顯示內(nèi)存地址,比如讓他顯示對(duì)象里面特定的屬性
#__getitem__ __setitem__ __delitem__
classFoo(object):
def__init__(self):
self.data={} #初始化成字典
def__getitem__(self, key):
print('__getitem__', key)
returnself.data.get(key)
def__setitem__(self, key, value):
print('__setitem__', key, value)
self.data[key]=value#實(shí)例變成字典
def__delitem__(self, key):
print('__delitem__', key)
obj=Foo()
obj["name"]="alex"#運(yùn)行__setitem__
print(obj.data)#運(yùn)行__setitem__ self.data[key]=value 生成字典
print(obj["name"])#運(yùn)行__getitem__ 并打印返回name的value 值
delobj["name"]#運(yùn)行__delitem__ 并不是真正刪除name key