加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Python在类之间传递变量

发布时间:2020-12-20 12:15:09 所属栏目:Python 来源:网络整理
导读:我正在尝试为游戏创建角色生成向导.在一个班级中,我计算角色的属性.在另一个类中,我将根据角色的属性向用户显示哪些专业可用.但是,我不记得如何在不同的类之间传递变量. 这是我的一个例子: class BasicInfoPage(wx.wizard.WizardPageSimple): def __init__(
我正在尝试为游戏创建角色生成向导.在一个班级中,我计算角色的属性.在另一个类中,我将根据角色的属性向用户显示哪些专业可用.但是,我不记得如何在不同的类之间传递变量.

这是我的一个例子:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读