您好,登錄后才能下訂單哦!
#__module__ __class__
Lib\aa.py
class C:
def __init__(self):
self.name='lwb'
當前目錄
index.py
from lib.aa import C
obj=C()
print( obj.__module__) #輸出類來自哪個模塊 輸出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 #方法轉屬性(函數轉變量)
def eat(self):
print("%s is eating %s"%(self.name,self.__food)) #先傳一個空變量 self.__food
@eat.setter #修改
def eat(self,food):
print("set to food:",food)
self.__food=food #將food傳入 空變量
@eat.deleter #刪除
def eat(self):
del self.__food
print("刪完了")
def __call__(self,*args,**kwargs):
print("runing call",args,kwargs)
def __str__(self):
return "<obj:%s>"%self.name
d=Dog("chenronghua")
d() #加了括號不能引用 調用的是__call__方法
d(1,2,3,name1="lei") #調用的是__call__方法,還可以傳入參數字典
Dog("chenronghua")()
#查看屬性
Print(Dog.__doc__) #輸出類的描述信息
print(Dog.__dict__) #__dict__ 打印類里的所有屬性,不包括實例屬性
print(d.__dict__) #__dict__ 打印所有實例屬性,不包括類屬性
print(d) #本來打印d這個對象的內存地址 定義__str__ 之后 ,就以__str__下的特定顯示方式顯示,不在顯示內存地址,比如讓他顯示對象里面特定的屬性
#__getitem__ __setitem__ __delitem__
class Foo(object):
def __init__(self):
self.data={} #初始化成字典
def __getitem__(self, key):
print('__getitem__', key)
return self.data.get(key)
def __setitem__(self, key, value):
print('__setitem__', key, value)
self.data[key]=value #實例變成字典
def __delitem__(self, key):
print('__delitem__', key)
obj=Foo()
obj["name"]="alex" #運行__setitem__
print(obj.data) #運行__setitem__ self.data[key]=value 生成字典
print(obj["name"]) #運行__getitem__ 并打印返回name的value 值
del obj["name"] #運行__delitem__ 并不是真正刪除name key
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。