0
所以我有一個父和子類:可以通過子實例訪問動態父實例的屬性和屬性值嗎?
class Map(object):
def __init__(self, name=''):
self.mapName = name
self.rules = {}
class Rule(Map):
def __init__(self, number):
Map.__init__(self)
self.number = number
def __repr__(self):
return "Map " + self.mapName + " rule number " + str(self.number)
if __name__ == "__main__":
map = Map("thismap")
rule = Rule(1)
map.rules[rule.number] = rule
上述:
$ python -i inherit.py
>>> map
<__main__.Map object at 0xb7e889ec>
>>> map.rules
{1: Map rule number 1}
>>> map.rules[1]
Map rule number 1
>>>
我曾嘗試加入:
map.rules[2] = Rule(2)
但仍然得到:
$ python -i inherit.py
>>> map.rules
{1: Map rule number 1, 2: Map rule number 2}
>>>
和:
map.rule = Rule(3)
這也並沒有真正讓我什麼我在尋找:
>>> map.rules
{1: Map rule number 1, 2: Map rule number 2}
>>> map.rule
Map rule number 3
>>>
我試圖做的是一個子實例鏈接到父實例類和訪問動態父類的屬性和值,在這種情況下這將是方便的,因爲我想用規則列表填充地圖並打印規則,包括每個規則的父映射名稱。我只是不確定我會如何去做這個在Python中。或者我只是試圖以一種並不意味着被使用的方式來使用繼承,或者遺漏一些顯而易見的東西。
任何想法都歡迎,並提前致謝
'self.mapName'不是由您的子類的構造函數設置的,所以它具有默認值,即空字符串。 – dastrobu