昨晚很晚,我问了一个类似但很糟糕的问题(访问实例变量,但不是 Python 中的实例方法),这引起了相当多的混乱。如果可以,我会删除它,但我不能。
我现在可以更清楚地提出我的问题了。
背景:我正在尝试构建一个二十一点游戏来学习 python 语法。每只手都是 Hand 类的一个实例,我现在正试图让手分开。因此,当需要拆分手时,我需要创建两个新的手实例。考虑到进一步的拆分是可能的,我想重用相同的方法来重新拆分手。因此,我(我认为)需要动态实例化 Hand 类。
以下是我用来阻止机制的代码片段:
import os
os.system("clear")
class Hand():
instances=[]
def __init__(self, hand_a, name):
Hand.instances.append(self)
self.name = name
self.hand_a = hand_a
def show_hand(self):
ln = len(self.hand_a)
for x in range(ln):
print self.hand_a[x]
class Creation():
def __init__(self):
pass
def create_name(self):
hil = len(Hand.instances)
new_name = 'hand_' + str(hil + 1)
return(new_name)
def new_instance(self):
new_dict = {0: 'Ace of Clubs', 1: '10 of Diamonds'}
new_hand_name = {}
new_hand_name.setdefault(self.create_name(), None)
print new_hand_name
new_hand_name[0] = Hand(new_dict, self.create_name())
print new_hand_name[0]
hand = Hand("blah", 'hand')
hand_z = Hand("blah_z", 'hand_z')
creation = Creation()
creation.new_instance()
这是输出:
{'hand_3': None}
<__main__.Hand instance at 0x10e0f06c8>
关于以下语句创建的实例:
new_hand_name[0] = Hand(new_dict, self.create_name)
new是new_hand_name[0]
指实例的变量吗?或者,是hand_3
变量?
即调用实例方法时,我可以使用hand_3.show_hand()
吗?