在python中调用继承属性
可能重复:在python中调用继承属性,python,Python,可能重复: 嗨 我试图调用从基类继承的类中的属性,但它不起作用。我想我错过了什么,但是什么? 这是我的密码: class Produkt: def __init__(self,pID,pProdNavn,pNetto): self.__produktId = pID #atributt for produkt nummer self.__produktNavn = pProdNavn #atributt for produkt navn self.__p
嗨 我试图调用从基类继承的类中的属性,但它不起作用。我想我错过了什么,但是什么? 这是我的密码:
class Produkt:
def __init__(self,pID,pProdNavn,pNetto):
self.__produktId = pID #atributt for produkt nummer
self.__produktNavn = pProdNavn #atributt for produkt navn
self.__produktNetto = pNetto #egenskap for nettopris
def getName(self): #Metode for å finne produktnavnet
return self.__produktNavn
class Bok(Produkt):
def __init__(self,pID,pProdNavn,pNetto,pForfatter):
Produkt.__init__(self,pID,pProdNavn,pNetto)
self.__produktForfatter = pForfatter #atributtp for forfatter
def getNet(self):
return self.__produktNetto
如您所见,我试图调用从Produkt类继承的_productNetto属性
我做错了什么
/Andy如果在属性名称中不使用双下划线,则效果很好
class Produkt:
def __init__(self,pID,pProdNavn,pNetto):
self.produktId = pID
self.produktNavn = pProdNavn
self.produktNetto = pNetto
def getName(self):
return self.__produktNavn
class Bok(Produkt):
def __init__(self,pID,pProdNavn,pNetto,pForfatter):
Produkt.__init__(self,pID,pProdNavn,pNetto)
self.produktForfatter = pForfatter
def getNet(self):
return self.produktNetto
x = Bok(1, 2, 3, 4)
print x.getNet()
输出:
三,
否则名称会被破坏,它将查找属性_Bok_uproduktnetto。见:
如果在属性名称中不使用双下划线,则效果良好
class Produkt:
def __init__(self,pID,pProdNavn,pNetto):
self.produktId = pID
self.produktNavn = pProdNavn
self.produktNetto = pNetto
def getName(self):
return self.__produktNavn
class Bok(Produkt):
def __init__(self,pID,pProdNavn,pNetto,pForfatter):
Produkt.__init__(self,pID,pProdNavn,pNetto)
self.produktForfatter = pForfatter
def getNet(self):
return self.produktNetto
x = Bok(1, 2, 3, 4)
print x.getNet()
输出:
三,
否则名称会被破坏,它将查找属性_Bok_uproduktnetto。见:
问题是您使用两个前导下划线命名这些成员,这使得它们在该类之外的名称下不可见(请参阅)
如果在两个位置都使用一个下划线重命名这些字段,它将按照您的意愿工作。问题在于您使用两个前导下划线命名这些成员,这使得它们在该类之外的名称下不可见(请参阅)
如果在两个位置都使用一个下划线重命名这些字段,它将按您的意愿工作。您对getNet的缩进不正确。尝试时会发生什么情况?到底什么不起作用?您对getNet的缩进不正确。尝试时发生了什么?到底是什么不起作用?