我来自C++背景,对于在Python中没有指针的整个概念感到有些迷茫。或者至少不太清楚。 例如,我想使用Python中的OOP创建一个井字棋游戏。我有几个类如下:
class Game(object):
def __init__(self, player1, player2):
self.board = [['','',''],
['','',''],
['','','']]
self.players = [player1, player2]
class Player(object):
def __init__(self, game, marking):
self.game = game
self.marking = marking # either 'X' or 'O'
显然,游戏需要参考两个玩家,并且玩家也是游戏的一部分,因此应该有一个对游戏的引用。然而,上面的代码无法工作,因为我没有办法先创建一个玩家而不创建一个游戏。但是要创建一个游戏,我需要两个玩家。
我可以稍后添加这些引用,例如:
player.game = some_game_reference
,但这似乎不符合Python的风格,并且难以跟进。最好、最符合Python风格的方法是什么?
object
,player1
等等都是指针。它们不是值,就像在 C++ 中一样。 - user2100815Py_Object
结构体的指针。但是说实话,你应该阅读Ned Batchelder的《关于Python名称和值的事实与神话》(Facts and Myths about Python names and values)。 - juanpa.arrivillaga