動態繫結屬性和方法 封裝 繼承

2021-10-10 20:46:10 字數 3281 閱讀 4962

class

student

:def

__init__

(self,name,age)

: self.name=name

self.age=age

defeat(self)

:print

(self.name+

'在吃飯'

)stu1=student(

'張三',20

)stu2=student(

'李四',30

)print(id

(stu1)

)print(id

(stu2)

)stu2.gender=

'女'print

(stu1.name,stu1.age)

print

(stu2.name,stu2.age,stu2.gender)

stu1.eat(

)stu2.eat(

)def

show()

:print

('sdsadsdsdssd'

)stu1.show=show

stu1.show(

)#2434502356664

#2434502356440

#張三 20

#李四 30 女

#張三在吃飯

#李四在吃飯

stu=student(

)'''1'''

stu.eaet(

)'''2'''

student.eat(stu)

'''3'''

#2和3效果相同

('汽車已啟動')

car=car(

'寶馬x5'

('person中=init'

) self.name=

'xao ming'

self.age=

18 self.gender=

'nan'

self.__***=

'nv'

defeat

(self)

:print

(f'person:在吃飯'

)#f'***x'中f使{}中的內容能夠被讀取

@classmethod

defshow_num

(cls)

:print

((f'人類的數量:'))

@staticmethod

deffunc1()

:print

('人類破壞環境'

)class

student

(person)

:pass

print

(student.num)

stu=student(

)print

(stu.name,stu.age,stu.gender)

stu.eat(

)student.show_num(

)student.func1(

)print

(stu.__dict__)

#student 繼承了 person 的所有屬性

('教齡'

,self.teachofyear)

stu=student(

'張三',20

,'1001'

)teacher=teacher(

'李四',34

,10)stu.info(

)teacher.info(

)#張三 20

#1001

#李四 34

#教齡 10

Python動態繫結屬性和方法

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

屬性和方法的動態繫結和限制

定義了乙個class,建立了乙個class的例項後,我們可以給該例項繫結任何屬性和方法,這就是動態語言的靈活性。先定義class 給例項繫結乙個屬性 給例項繫結乙個方法 只是繫結這個單獨的物件上,同類的其他例項化的物件的並沒有受到影響。給類繫結乙個方法 class person pass defse...

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