您好,登錄后才能下訂單哦!
這篇文章主要介紹了python中 __str__和__dict__怎么用,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
使用版本:python 3+ 以后 ,刪除了__unicode__ 轉而用 __str__ 代替
說明:
1、__str__ 是被 print 函數調用的,一般都是return一個什么東西。
2、這個東西應該是以字符串的形式表現的。如果不是要用str()函數轉換。
3、當你打印一個類的時候,那么print首先調用的就是類里面的定義的__str__
class A(): def __init__(self): self.name='lee' self.age=18 self.job='it' def __str__(self): #重寫 return 'xxx' a=A() print(A) #輸出 <class '__main__.A'> print(a) #輸出xxx print(str(a)) #輸出xxx print(str(A)) #輸出 <class '__main__.A'> print(A.__str__) #輸出 <function A.__str__ at 0x00000000011C9510> print(a.__str__) #輸出<bound method A.__str__ of <__main__.A object at 0x0000000000A49048>>
一個對象的屬性查找順序遵循首先查找實例對象自己,然后是類,接著是類的父類。
__dict__是一個字典,鍵是屬性名,值為屬性值。
實例有自己的__dict__,它對應的類也有自己的__dict__
但是有些特殊的對象是沒有__dict__屬性的,這里不做討論
class A(): def __init__(self): self.name='lee' self.age=18 self.job='it' a=A() print(a.__dict__) #輸出 {'name': 'lee', 'job': 'it', 'age': 18} print(A.__dict__) ''' 輸出類所有的 屬性 {'__init__': <function A.__init__ at 0x0000000000B3F9D8>, '__dict__': <attribute '__dict__' of 'A' objects>, '__weakref__': <attribute '__weakref__' of 'A' objects>, '__doc__': None, '__module__': '__main__'} '''
當打印 類 的__dict__屬性時,列出了類所包含的屬性,包括一些類內置屬性和類變量及構造方法__init__
當打印 實例對象 的 __dict__ 屬性時,則打印 這個對象的 key ,value
當我們有一個字典時,如
bokeyuan={"b":1, "o":2, "k":3, "e":4, "y":5, "u":6, "a":7, "n":8, }
現在想將其轉換為一個對象,通常會這樣寫:
class Dict2Obj: def __init__(self,bokeyuan): self.b = bokeyuan['b'] self.o = bokeyuan['o'] self.k = bokeyuan['k'] self.e = bokeyuan['e'] self.y = bokeyuan['y'] self.u = bokeyuan['u'] self.a = bokeyuan['a'] self.n = bokeyuan['n']
現在可以使用__dict__
class DicToObj(): def __init__(self,bokeyuan): self.__dict__.update(bokeyuan)
感謝你能夠認真閱讀完這篇文章,希望小編分享的“python中 __str__和__dict__怎么用”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。