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