在python中處理類(巢狀的etc)看起來並不容易,令人驚訝的是!我最近遇到了以下問題,花了幾個小時(嘗試,搜尋…)都沒有成功。我閱讀了大部分相關鏈結,但沒有乙個指向這裡提出的問題!#------------------------------------
class a:
def __init__(self):
self.a = 'a'
print self.a
class b(a):
def __init__(self):
self.b = 'b'
a.a = 'a_b'
print self.b, a.a
class c:
class a:
def __init__(self):
self.a = 'a'
print self.a
class b(a):
def __init__(self):
self.b = 'b'
a.a = 'a_b'
print self.b, a.a
>>> c1 = a()
a>>> c1.a
'a'>>> c2 = b()
b>>> c2.a, c2.b
('a_b', 'b')
>>> c3 = c()
>>> c4 = c3.a()
a>>> c4.a
'a'>>> c5 = c3.b()
b a_b
>>> c5.b
'b'>>> c5.a
traceback (most recent call last):
file "", line 1, in
attributeerror: b instance has no attribute 'a'
**中的問題在**?
和在這兩種情況下,當b(a)初始化時,a()似乎沒有初始化。這個問題的解決辦法是什麼?注意,在b()的__init__()中呼叫的術語a.__init__()不起作用!
更新:class geometry:
class curve:
def __init__(self,c=1):
self.c = c #curvature parameter
print 'curvature %g'%self.c
pass #some codes
class line(curve):
def __init__(self):
geometry.curve.__init__(self,0) #the key point
pass #some codes
g = geometry()
c = g.curve(0.5)
l = g.line()
結果是:curvature 0.5
curvature 0
我在找的東西。
Python 類的巢狀使用
建立三個學校且三個學校的設施內容等都是一致.class school object def init self,name,address self.name name self.address address def speech self print 講課 obj1 school 北京校區 美麗富...
python使用巢狀序列
列表和元組都可以存放任何型別的資料,列表可以含有其他的列表或元組,元組也可以含有其他的元組或列表。這叫巢狀序列。巢狀序列就是序列中有序列,它是組織複雜資訊的好辦法。建立巢狀序列 巢狀列表或元組的建立方法跟普通列表或元組差不多 輸入各個元素,並以逗號隔開。區別在於巢狀序列的元素可以是整個列表或元組。n...
使用巢狀類 臨時類儲存資料
之前為了儲存關聯資料,使用了巢狀pair進行儲存 但若關聯資料較多,多個pair巢狀可讀性特別差!為解決這個問題,可以使用乙個臨時class或struct來儲存資料,其主要區別是class成員預設private,struct成員預設public,這裡以類為例。class tempclass temp...