Python動態新增屬性

2021-08-28 18:31:00 字數 1033 閱讀 7818

class student(object):

#@classmethod修飾的屬性可以通過類變數和類例項變數直接呼叫

#因為在這兩種情況下都可以將類變數繫結到@classmethod修飾的方法的第乙個引數上

@classmethod

def eat(cls):

print('eating...')

#當類的例項動態新增屬性時

class function_1():

print('function_1')

s = student()

s.function_1 = function_1

print(s.function_1)

#當類變數動態新增屬性時(重點)

class function_2():

print('function_2')

student.function_2 = function_2

print(student.function_2())

#當執行如下語句會報錯,原因在於當類例項呼叫方法時,該方法必須要有乙個引數,因為該例項會繫結到該引數#上,這個引數名一般為self,當然也可以時其他名字.

s2 = student()

s2.function_2()

#如果時這樣就沒問題了

class function_3(self):

#當student物件呼叫時,self型別為student

print(type(self))

print('function_3')

student.function_3 = function_3

#如果是直接呼叫該函式的話必須傳入乙個引數(不一定是該類的例項),例如:

student.function_3('xixi')

#如果是通過類的例項來呼叫該函式的話則不用傳遞第乙個引數(缺省會傳遞該例項本身繫結到第乙個引數)

#且必須要有乙個引數

s3 = student()

print(s3.function_3)

python動態新增類屬性 Python動態類屬性

python動態新增類屬性教程 python動態新增類屬性詳解 語法class student pass student.attr value 說明我們可以直接使用 類名.屬性 值 的形式,給類動態地新增乙個類屬性。案例動態新增類屬性 給 python 中的類動態新增屬性 print 嗨客網 www...

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...