<p>我有以下代码:</p>
<pre><code>class Player:
def __init__(self, username, trip, model):
self.username = username
self.trip = trip
self.hp = 100
#### For player moving location/room ####
def Move(self, dest):
if dest == self.loc:
return True
# Check destination room is accessible from current room
for room in aGame['rooms']:
if room['ref'] == self.loc:
for acsroom in room['acs']:
if acsroom == dest:
self.loc = dest
return True
return False
</code></pre>
<p>aGame是一个在类外部定义的数组,因此此代码无法工作。
由于该类中可能有许多其他函数可能会使用aGame数组,因此我应该这样做:</p>
^{pr2}$
<p>还是这样做更好:</p>
<pre><code>class Player:
def __init__(self, username, trip, model):
self.username = username
self.trip = trip
self.hp = 100
#### For player moving location/room ####
def Move(self, dest, aGame):
if dest == self.loc:
return True
# Check destination room is accessible from current room
for room in aGame['rooms']:
if room['ref'] == self.loc:
for acsroom in room['acs']:
if acsroom == dest:
self.loc = dest
return True
return False
</code></pre>
<p>还是应该将aGame设为全局变量(如果是,如何,请注意这个类在另一个文件中)?在</p>
<p>因为aGame是一个到处都在使用的数组,所以在每个类中复制它似乎是不正确的。
我可能搞错了,我正在慢慢地学习OOP,谢谢你的帮助。在</p>