python中的alpha beta修剪

在alpha,beta修剪算法中,  我有一个类,其中定义了函数def getAction(self,gamestate)id。我在def getAction中又做了两个函数 喜欢:
class BAC:
  def you(self,gamestate):
    def me(gamestate,depth,alpha, beta):
    ------
      return v
    def both(gamestate,depth,alpha, beta):
    -------------------
      return v
   return me(gamestate,0,alpha, beta)-
我需要将alpha,beta放在我和两个函数中。但是我在哪里定义alpha和beta值。如果我在def me和def两者中定义alpha和beta,那么就会出现错误,因为全局名称alpha不存在。 如何制作alpha和beta局部变量或如何才能使其正常工作?     
已邀请:
我想你想要将alpha和beta定义为你的类的属性。 您可能需要一个初始化变量的类构造函数。
class BAC:
    def __init__(self):
        self.alpha= 'Hello '
        self.beta= 'World!'
    def me(self):
        print self.alpha + self.beta
或者您可以初始化属性变量,如:
class BAC:
    def me(self,alpha,beta):
        self.alpha = alpha
        self.beta= beta
        print self.alpha + self.beta
如果你想要持久化,你所需要的只是引用类的属性。 如果您选择第一个解决方案:
my_bac = Bac()
print my_bac.alpha + my_bac.beta
输出将是
Hello World!
Hello World!
    
通常,alpha-beta算法被实现为更高级别的函数,其将初始值分配给alpha和beta,然后将这些值传递给递归(或者非递归的基于堆栈的)搜索函数。 上面给出的类解决方案也很好,虽然我可能会添加一个方法来重置alpha和beta,这样就不必在每次搜索开始时实例化类实例。     

要回复问题请先登录注册