lme*_*lme 10 python variables instance
class foo():
def __init__(self)
self.var1 = 1
class bar():
def __init__(self):
print "foo var1"
f = foo()
b = bar()
Run Code Online (Sandbox Code Playgroud)
在foo中,我正在做一些产生"var1"设置为1的内容在bar中,我想访问var1的内容
如何从bar的实例b中访问foo的类实例f中的var1
基本上这些类是不同的wxframes.因此,例如在一个窗口中用户可能正在输入输入数据,在第二窗口中,它使用该输入数据来产生输出.在C++中,我会有一个指向调用者的指针,但我不知道如何在python中访问调用者.
小智 16
作为wxPython中不同页面访问和编辑相同信息的一般方法,请考虑在MainFrame(或任何您称之为)类中创建info类的实例,然后将该实例传递到它创建的任何其他页面上.例如:
class info():
def __init__(self):
self.info1 = 1
self.info2 = 'time'
print 'initialised'
class MainFrame():
def __init__(self):
a=info()
print a.info1
b=page1(a)
c=page2(a)
print a.info1
class page1():
def __init__(self, information):
self.info=information
self.info.info1=3
class page2():
def __init__(self, information):
self.info=information
print self.info.info1
t=MainFrame()
Run Code Online (Sandbox Code Playgroud)
输出是:
initialised
1
3
3
Run Code Online (Sandbox Code Playgroud)
info仅在证明只有一个实例但是page1已将info1变量更改为3并且page2已注册该更改时才初始化.
小智 7
没有人提供代码示例,显示了在不更改init参数的情况下执行此操作的方法.您可以简单地在外部作用域中使用一个定义两个类的变量.如果在另一个源文件中定义了一个类,则无法使用此方法.
var1 = None
class foo():
def __init__(self)
self.var1 = var1 = 1
class bar():
def __init__(self):
print var1
f = foo()
b = bar()
Run Code Online (Sandbox Code Playgroud)
与任何语言相同.
class Foo(object):
def __init__(self):
self.x = 42
class Bar(object):
def __init__(self, foo):
print foo.x
a = Foo()
b = Bar(a)
Run Code Online (Sandbox Code Playgroud)