動態繫結屬性

2021-10-01 18:58:31 字數 1360 閱讀 1584

動態繫結屬性

__dict__()

先看下面的**:

class a():

def __init__(self,a,b,c,d,e):

self.a = a

self.b = b

self.c = c

self.d = d

self.e = e

p1 = a(1, 2, 3, 4, 5)

print(dir(p1))

'''

['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'a', 'b', 'c', 'd', 'e']

'''

上面為第一段**的執行結果,在其中可以找到'__dict__',這說明a類實際上是調研了這個方法的,通過下面的**,可以清楚看到,類中是有這個方法的。

class a():

def __init__(self,a,b,c,d,e):

self.a = a

self.b = b

self.c = c

self.d = d

self.e = e

p1 = a(1, 2, 3, 4, 5)

print(p1.__dict__)

'''

'''

列印後輸出的為字典,可見他是把傳進去的引數都儲存為字典型別,當然我們也可以通過字典鍵來賦值,看下面的**。

class a():

def __init__(self,a,b,c,d,e=0):

self.a = a

self.b = b

self.c = c

self.d = d

self.e = e

p1 = a(1, 2, 3, 4)

p1.__dict__['e']=55

print(p1.__dict__)

'''

'''

python 動態繫結屬性方法

import types 定義類 class person object num 0 def init self,name,age none self.name name self.age age def eat self print eat food 定義例項方法 def run self,spe...

Python動態繫結屬性和方法

當我們定義了乙個 class,建立了乙個 class 的例項後,我們可以給該例項繫結任何屬性和方法,也可以給類繫結任何屬性和方法,這就是動態語言的靈活性。給例項繫結屬性和方法,每個例項之間新增的部分是互不干擾的。1.先來看乙個方法 methodtype 如果我們在模組中定義乙個方法,而不是在類中定義...

python 動態繫結屬性與方法

動態繫結屬性與方法的意思就是在本沒有這個屬性與方法的例項物件中新增這個屬性與方法。具體操作如下 class stduent def init self,name,age self.name name self.age age defeat self print self.name 正在吃飯 std1...