在子类ComputerGame
中,Toy.__init__(self,n)
,n
未定义。
当我尝试在基类中调用n
函数时,为什么警告我变量__init__()
未定义?简单地说,为什么Toy.__init__(self,n)
在子类中不可调用?我已宣布ComputerGame (Toy):
。为什么不继承方法Toy.__init__(self,n)
?
我应该在类外面声明变量吗?
class Toy:
def __init__(self,n):
self.__ToyName = n
self.__ToyID = ""
self.__Price = 0.00
self.__MinimumAge = 4
def SetToyName(self,p):
self.__ToyName = p
def SetToyID(self,d):
self.__ToyID = d
def SetPrice(self,i):
self.__Price = i
def SetMinimumAge(self,i):
self.__MinimumAge = i
def GetToyName(self):
return (self.__ToyName)
def GetToyID(self):
return (self.__ToyID)
def GetPrice(self):
return (self.__Price)
def GetMinimumAge(self):
return (self.__MinimumAge)
class ComputerGame(Toy):
def __init__(self):
Toy.__init__(self,n)
self.__Catogory = ""
self.__Console = ""
def SetCatogory(self,c):
self.__Catogory = c
def SetConsole(self,c):
self.__Console = c
def GetCatogory(self):
return (self.__Catogory)
def GetConsole(self):
return (self.__Console)
答案 0 :(得分:1)
这是一个范围问题:
class ComputerGame(Toy):
def __init__(self):
Toy.__init__(self,n)
这是n
的首次亮相。当您创建ComputerGame
时,您的__init__
方法要求您(调用程序)在创建过程中提供n
。这就是你编写代码的方式。
上面的__init__
假设n
将无处不可思议地出现。我不清楚你期望从中得到什么数据流 - Python编译器也是如此。我不知道如何解决这个问题,因为你没有提供Minimal, complete, verifiable example。我们应该至少有一行主代码来创建对象。
一个很有可能的事情很简单:
class ComputerGame(Toy):
def __init__(self, n):
Toy.__init__(self, n)
NewFPS = ComputerGame(“Universal Uzi”)
这清楚了吗?