所以我有一些看起来像这样的东西
class MyClass():
def someMethod(self):
sprites = SomeClassInstance()
class MyClass2():
def someMethod2(self):
#The answer to the question goes here
有没有办法从MyClass2()访问精灵?最重要的是,没有像这样的声明
A = MyClass()
只有这个
A = MyClass().someMethod()
答案 0 :(得分:1)
您的精灵变量是MyClass.someMethod
的本地变量。而是将其附加到self
以使其可以从方法外部访问:
class MyClass():
def someMethod(self):
self.sprites = SomeClassInstance()
class MyClass2():
def someMethod2(self):
#The answer to the question goes here
myClass = myClass()
myClass.someMethod()
sprites = myClass.sprites
如果你想要sprite是一个静态变量,请在类体中定义它:
class MyClass():
sprites = SomeClassInstance()
def someMethod(self):
pass
class MyClass2():
def someMethod2(self):
#The answer to the question goes here
MyClass.sprites
答案 1 :(得分:0)
这非常hacky ......但是如果你只想按照自己的方式完成任务,可以使用全局变量:
SPRITES = None
class A(object):
def setter(self):
global SPRITES
SPRITES = "mysprite"
class B(object):
def getter(self):
global SPRITES
print SPRITES
a, b = A(), B()
a.setter()
b.getter()
但是当然A和B的所有实例都会共享一个变量,所以这可能不是你想要的。