Python method call from class to class
我正在学习python,我对从一个类调用到另一个类的语法感到困惑。我做了很多搜索,但没能对工作做出任何回答。我总是会有一些变化,比如:
1 | TypeError: __init__() takes exactly 3 arguments (1 given) |
帮助非常感谢
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | import random class Position(object): ''' Initializes a position ''' def __init__(self, x, y): self.x = x self.y = y def getX(self): return self.x def getY(self): return self.y class RectangularRoom(object): ''' Limits for valid positions ''' def __init__(self, width, height): self.width = width self.height = height def getRandomPosition(self): ''' Return a random position inside the limits ''' rX = random.randrange(0, self.width) rY = random.randrange(0, self.height) pos = Position(self, rX, rY) # how do I instantiate Position with rX, rY? room = RectangularRoom() room.getRandomPosition() |
您不需要传递
1 | pos = Position(rX, rY) |
注意,这里的错误发生在这一行,但是:
1 | room = RectangularRoom() |
这方面的问题是你没有给
也许前面这些问题的答案可以帮助您理解为什么Python决定在方法上添加显式的特殊第一个参数:
- 自我的目的是什么?
- 为什么需要在Python方法中明确地拥有"自我"参数?
- Python——为什么在课堂上使用"自我"?
错误消息可能有点神秘,但一旦您看到它一次或两次,您就知道要检查什么:
那些期望/给定的数字帮助很大。