【发布时间】:2018-02-21 17:51:04
【问题描述】:
我有一个有 2 到 3 个参数的类,但是当我通过 1 时,它说只通过了 1,但是当我通过 2 时,它说已经通过了 4 个。
代码:
class GiantWarren(Warren):
def __init__(self, Variability, RabbitCount):
self.__MAX_RABBITS_IN_WARREN = 200
super(GiantWarren, self).__init__(Variability, RabbitCount, self.__MAX_RABBITS_IN_WARREN)
self.__RabbitCount = RabbitCount
def NeedToCreateNewWarren(self):
if self.__RabbitCount == self.__MAX_RABBITS_IN_WARREN:
return True
else:
return False
在哪里调用:
self.__Landscape[11][4].GiantWarren = GiantWarren(self.__Variability, 115)
给出错误
super(GiantWarren, self).init(可变性, RabbitCount, self.MAX_RABBITS_IN_WARREN) TypeError: __init() 接受 2 到 3 个位置参数,但给出了 4 个
class Warren:
def __init__(self, Variability, RabbitCount = 0):
self._MAX_RABBITS_IN_WARREN = 99
self._RabbitCount = RabbitCount
self._PeriodsRun = 0
self._AlreadySpread = False
self._Variability = Variability
【问题讨论】:
-
添加类
Warren的代码。 -
那是
__init__()的Warren被三个参数调用 (+self) -
哦,更改您的命名约定。你不会在 python 中命名这样的东西。
-
@HuStmpHrrr 虽然通常建议,但不一定要遵循 PEP8。
-
@byxor 没有必要的约定。但是,我确实认识到与社区准则保持一致的重要性。