程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python魔法方法(13):__setattr __(self, key, value) 方法

編輯:Python

Python 的對象天生擁有一些神奇的方法,它們總被雙下劃線所包圍,它們是面向對象的 Python 的一切。它們是可以給你的類增加魔力的特殊方法,如果你的對象實現(重載)了某一個魔法方法,那麼這個方法就會在特殊的情況下自動被 Python 所調用。

功能

該方法定義當一個屬性被設置(創建或修改)時的行為

參數

self 代表對象本身;key是一個字符串,代表屬性的名字;value代表屬性的值.

返回值

示例

class MyTest:
def __setattr__(self, key, value):
self.__dict__[key] = value
sample = MyTest()
sample.age = 10
print(sample.__dict__)

當一個屬性被設置時的行為 在類實例的每個屬性進行賦值時,都會首先調用 __setattr__() 方法,並在 __setattr__() 方法中將屬性名和屬性值添加到類實例的 __dict__ 屬性中。如下示例:

class Animal(object):
def __init__(self, name, age):
print(self.__dict__)
self.name = name
print(self.__dict__)
self.age = age
print(self.__dict__)
dog = Animal('kitty', 20)

執行結果:

{}
{'name': 'kitty'}
{'name': 'kitty', 'age': 20}

示例中,雖然沒有重載 __setattr__() 方法,但是在調用 __init__() 方法對屬性賦值時__dict__ 中依次插入 key 和 value。


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved