python巢狀類的使用 Python中的巢狀類

2021-10-11 12:51:35 字數 1440 閱讀 9046

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