实例属性和类属
1.Python是動態語言,根據類創建的實例,可以任意綁定屬性
2.給實例綁定屬性的方法有兩種:
? 通過實例變量或者通過self變量。
1 class Student(object): 2 def __init__(self, name): 3 self.name=name 4 5 ##或者如下: 6 >>>s = Student("bob") 7 >>>s.score = 90如果類本身需要屬性,這個屬性雖然歸類所有,但是類的所有實例都可以訪問到。
給實例綁定方法的用法如下:
1 >>>def set_age(self, age): 2 self.age = age 3 4 5 >>>from types import MethodType 6 >>>s.set_age = MethodType(set_age, s) ##給實例綁定一個方法 7 >>>s.set_age(28) ###調用實例的方法 8 >>>s.age ###測試結果 9 25但是給一個實例綁定的方法,對另一個實例是不起作用。(其實這樣有很多的好處)
此外:如果所有的實例都有相同的方法,可以給class綁定方法,這是類的繼承
給class綁定方法如下:
>>>def set_score(self, score): self.score = score >>>Student.set_score = MethodType(set_score, Student)其實和實例的綁定方法一樣的。
***
通常情況下:上面的set_score方法可以直接定義在class中,但是動態綁定允許我們在程序運行的
過程中動態給class加上功能,這在靜態語言中很難實現。
?
?
?
?
?
?
轉載于:https://www.cnblogs.com/lmt921108/p/7570793.html
總結
- 上一篇: [BZOJ] 1688: [Usaco2
- 下一篇: 信用卡附属卡有年费吗?信用卡附属卡怎么免