# class fun():# a = 1 # 類屬性
# def l(self):
# a = 4
# print('a')
# b = fun()
# print(fun.a)
# class test(object):
# name = 'scolia'
## a = test()
# test.name = 'scolia good' # 通過類進行修改類屬性,成功!連例項屬性都改了
# print(test.name)
# print(a.name)
# class test(object):
# name = 'scolia'
## a = test()
# a.name = 'scolia good' # 通過例項進行修改,不成功,只是相當於重新建立了例項屬性,沒有修改類屬性
# print(test.name)
# print(a.name)
# 這裡的情況是我在例項中訪問乙個屬性,但是我例項中沒有,我就試圖去建立我的類中尋找有沒有這個屬性。
# 找到了,就有,沒找到,就丟擲異常。(這裡說明了例項物件能夠訪問類的屬性!反之,類物件不能訪問例項屬性!)
# 而當我試圖用例項去修改乙個在類中不可變的屬性的時候,我實際上並沒有修改,而是在我的例項中建立了這個屬性。
# 而當我再次訪問這個屬性的時候,我例項中有,就不用去類中尋找了。
# class test(object):
# name = 'scolia'
## a = test()
# a.abc = 123
# print(dir(test)) # abc 自動在例項屬性中建立了
# print(dir(a))
# 已經證實了例項屬性能夠被類物件修改,試著通過例項修改類屬性
# class test:
# list1 =
## a = test()
# print(test.list1)
# print(a.list1)
# 也可以任性地為某個例項新增方法,python 支援動態新增屬性
# class test:
# pass
## def fangfa():
# print('我是某個例項的方法')
## a = test()
# b = test()
# a.abc = fangfa # 特意新增乙個方法
# a.abc()
# b.abc() # b 沒有這個方法
# 還能為類動態新增方法
class test:
pass
def fangfa(self): # self 代表是例項方法,只能由例項呼叫
print('我是方法')
test.abc = fangfa
a = test()
a.abc()
b = test() # 已經修改(新增)了類的方法
b.abc()
例項屬性和類屬性
例項屬性和類屬性 由於python是動態語言,根據類建立的例項可以任意繫結屬性。給例項繫結屬性的方法是通過例項變數,或者通過self變數 class student object def init self,name self.name name s student bob s.score 90但是...
類屬性和例項屬性
類屬性就是類物件所擁有的屬性,它被所有類物件的例項物件所共有,在記憶體中只存在乙個副本,這個和c 中類的靜態成員變數有點類似。對於公有的類屬性,在類外可以通過類物件和例項物件訪問 class people object name tom 公有的類屬性 age 12 私有的類屬性 p people p...
類屬性和例項屬性
1.不可修改型別 物件屬性只要賦值,那麼此物件用的屬性就是自己的屬性,不會再用同名的類屬性,類屬性的變化不會再影響到此物件。2.可修改型別 a.修改內部屬性的值,只要修改不是賦值,那麼修改會影響到所有物件以及類屬性。b.如果是重新賦值操作,效果等同於不可修改型別。class a books 三國 西...