Python在类之间传递变量
我正在尝试为游戏创建角色生成向导.在一个班级中,我计算角色的属性.在另一个类中,我将根据角色的属性向用户显示哪些专业可用.但是,我不记得如何在不同的类之间传递变量.
这是我的一个例子: class BasicInfoPage(wx.wizard.WizardPageSimple): def __init__(self,parent,title): wiz.WizardPageSimple.__init__(self,parent) self.next = self.prev = None self.sizer = makePageTitle(self,title) <---snip---> self.intelligence = self.genAttribs() class MOS(wx.wizard.WizardPageSimple): def __init__(self,title) def eligibleMOS(self,event): if self.intelligence >= 12: self.MOS_list.append("Analyst") 问题是我无法弄清楚如何使用BasicInfoPage类中的“智能”变量到MOS类.我在互联网上尝试过几种不同的东西但似乎没什么用.我错过了什么? 编辑我在发布之后意识到我没有那么好解释.我试图从20世纪80年代创建一个计算机版本的Twilight 2000 RPG. 我正在使用wxPython来创建向导;我的类的父类是来自wxPython的向导.该向导将引导用户创建一个字符,因此“基本信息”页面(类BasicInfoPage)允许用户为角色的属性提供角色的名称和“滚动”.这就是“自我智能”的来源. 我正在尝试在向导中使用为她的页面创建的属性,用户可以选择角色的特性.可用的专业取决于角色所具有的属性,例如如果情报足够高,角色可以是Intel Anaylst. 我编程已经好几年了,尤其是OOP创意.这就是为什么我对如何用类和方法创建本质上是全局变量感到困惑. 解决方法
您可能会将“类”和“实例”混淆.从你的例子中不清楚,所以我假设你使用了很多类定义而没有这些类的适当对象实例.
类实际上没有可用的属性值.类只是对象集合的一组通用定义.您应该将类??视为定义,而不是实际的事物. 类的实例“对象”是具有实际属性值和执行方法函数的实际事物. 您不在类之间传递变量.您在实例之间传递变量.实际上,只有实例变量很重要. [是的,有类变量,但它们是一个相当专业且经常令人困惑的事情,最好避免.] 创建对象(类的实例)时 b= BasicInfoPage(...) 然后b.in??telligence是BasicInfoPage的b实例的智能值. 一个非常普遍的事情是 class MOS( wx.wizard.PageSimple ): def __init__( self,title,basicInfoPage ): <snip> self.basicInfo= basicInfoPage 现在,在MOS方法中,你可以说self.basicInfo.intelligence,因为MOS有一个可用的BasicInfoPage对象. 构建MOS时,为它提供它应该使用的BasicInfoPage实例. someBasicInfoPage= BasicInfoPage( ... ) m= MOS( ...,someBasicInfoPage ) 现在,对象m可以检查someBasicInfoPage.intelligence (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |