Python 動態屬性方法的新增和限制新增屬性

2021-09-13 10:40:56 字數 1355 閱讀 4437

在沒有定義乙個屬性的時候,我們可以動態的定義乙個屬性或者方法。

from types import methodtype

class person:

pass

if __name__ == '__main__':

p = person()

p.name = "laobi"

print(p.name)

f:\學習**\python**\venv\scripts\python.exe f:/學習**/python**/day5/動態新增屬性.py

laobi

process finished with exit code 0

有些情況沒有在定義類是新增它的屬性或者方法(比如,我們使用第三方函式庫的時候)。但可以通過動態的方法,在程式執行的過程中新增。

from types import methodtype

class person:

pass

def tell(self):

print("my name is %s"%(self.name))

if __name__ == '__main__':

p = person()

p.name = "laobi"

print(p.name)

p.speak = methodtype(tell,p)

#將tell方法繫結到p上

p.speak()

f:\學習**\python**\venv\scripts\python.exe f:/學習**/python**/day5/動態新增屬性.py

laobi

my name is laobi

process finished with exit code 0

class person:

__slots__ = ("name","age")

def __init__(self,name,age):

self.name = name

self.age = age

if __name__ == '__main__':

p = person("小紅",20)

print(p.name)

print(p.age)

# p.tell = "20000"

# print(p.tell)

f:\學習**\python**\venv\scripts\python.exe f:/學習**/python**/day5/限制新增屬性.py

小紅20

process finished with exit code 0

python動態新增屬性和方法

class person def init self,name,age self.name name self.age age p1 person ff 28 print p1.name,p1.age 給例項物件動態新增 屬性 p1.female print p1.給類動態新增屬性 person.h...

Python動態新增屬性和方法

動態新增屬性,就是這個屬性不是在類定義的時候新增的,而是在程式執行過程中新增的,動態新增屬性有兩種方法,第乙個是直接通過物件名.屬性名,第二個是通過setattr新增 1 第一種 使用物件.屬性名新增 p.ageb 18 2 第二種,使用setattr函式新增 class person def in...

Python的動態新增屬性與方法

我們都知道python是動態語言。動態?動態在 呢?假如c語言定義了乙個類,我們在類固定的情況下,可以不可以為這個類或者這個類的物件新增物件呢?答案肯定是否定的 python就可以。下面我們來看看。一.動態新增屬性 1.動態新增物件屬性 我們來新建乙個類。我們建立了乙個person類,用person...