,我讀了很多,但還是無法弄清楚如何將孩子變量傳遞給父類:認識繼承和傳遞子變量父類
class anyIF_traffic(object):
def __init__(self, logpath, typeOfTraffic='cha', name='mytest', port='6060'):
try:
assert port in [None, '6060', '6161', '6389', '6636']
print "PORT: %s"%(port)
self.port = port
except AssertionError, msg:
print "Exception"
sys.exit (1)
def __str__(self):
return self.port
class a_traffic(anyIF_traffic):
def _init__(self, *args, **kwargs):
self.port = '6161'
anyIF_traffic.__init__(self, *args, **kwargs)
class b_traffic(anyIF_traffic):
def _init__(self, *args, **kwargs):
self.port = '6389'
anyIF_traffic.__init__(self, *args, **kwargs)
port = a_traffic(logpath='c://')
print "A. %s"%(port)
port = a_traffic(logpath='c://')
print "B. %s"%(port)
OUT:
A. 6060
OUT:
B. 6060
什麼,我想獲得的是:
OUT:
A. 6161
OUT:
B. 6389
但是當我運行它,我總是會得到的「6060」的缺省值,因爲這是在父類中聲明_ 初始化。
我當然可以這樣做:
port = a_traffic(logpath='c://', port='6161')
print "A. %s"%(port)
OUT:
A. 6161
,但我想有儘可能多的用戶可能不太參數來照顧過。
我知道我的問題是,我還沒有完全理解類的pythons繼承,並仍然在Python新。
謝謝進階
你在哪裏把這些可怕的類名而來? :)另外請注意,'port'應該是一個'int'而不是'str';你需要它作爲一個字符串,只要做'str(port)'。 –
感謝所有的意見和答案,但我確實嘗試了這些建議,但我仍然得到相同的輸出!我有可能也改變我的父母班嗎? – FotisK
我明白了,愚蠢的新手錯誤!有用! – FotisK