访问函数python中定义的变量



我正在从事一个项目,我正在运行Python 2.7和Panda3d v1.8.1。我无法找出如何访问函数中定义的变量。对于设置,我有两个文件。一个文件管理事件,第二个文件加载模型。这是我拥有的示例:

class secondFile(object):
    def create_something(self):
        variable = loader.loadModel('myModel.bam')
        variable.setPos(123,1231,5)

在我的第一个文件中,我希望能够访问该变量,以便我可以在角色相撞时调用功能。我正在阅读其他类似的问题,但似乎没有任何答案适合我想要做的事情。

DO = DirectObject()
def collideEventIn():
    print "Collision"
collisionHandler.addInPattern('%fn-into-%in')
DO.accept('character-into-variable', collideEventIn)

我尝试了以下方法:

class secondFile(object):
    def create_something(self):
        create_something.variable = loader.loadModel('myModel.bam')
        create_something.variable.setPos(123,1231,5)

主文件:

DO = DirectObject()
variable = secondFile().create_something.variable
def collideEventIn():
    print "Collision"
collisionHandler.addInPattern('%fn-into-%in')
DO.accept('character-into-variable', collideEventIn)

但是它似乎不起作用。

不确定我是否正确解释了您的问题,但是为什么不返回variabe?

def create_something(self):
    variable = loader.loadModel('myModel.bam')
    variable.setPos(123,1231,5)
    return variable

并在variable中访问它:

variable = secondFile().create_something()

如果您希望它更像OOP,则应将variable绑定到自我:

def create_something(self):
    self.variable = loader.loadModel('myModel.bam')
    self.variable.setPos(123,1231,5)

然后,访问它:

SF = secondFile()
SF.create_something()
variable = SF.variable

您的变量不能存储在函数中。功能内部的变量在外部无法访问。但是外部的变量(例如在班级中)可以在功能内部访问。所以您想要的是self.variable

def create_something(self):
    self.variable = loader.loadModel('myModel.bam')
    self.variable.setPos(123,1231,5)

然后,类中的任何其他函数或引用实例的任何代码都可以通过self.variablethesecondfile.variable访问它(假设thesecondfile = secondFile()

相关内容

  • 没有找到相关文章

最新更新