2024-09-26 22:53:04 发布
网友
所以,我正在写一个神经网络,它工作得完美无缺。但是我决定用tkinter做一个GUI,以便于控制。我的问题是,我可以在一个函数中创建AI实例,但不能从同一层次结构中的另一个函数中访问它(任何类中都没有函数)。 Nn是另一个python脚本
def ph1(): n = Nn.neuralNetwork(v, v, v, v) def ph2(): n.something()
我得到的错误代码是:
name 'n' is not defined
您得到的错误是因为n只存在于ph1()函数的local namespace中,并且ph2()无法调用它,因为variable scope的概念。因此,您可以使用以下选项来无误地执行此操作:
n
ph1()
local namespace
ph2()
variable scope
使用asparameter
parameter
def ph1(): n = Nn.neuralNetwork(v, v, v, v) return n def ph2(n): n.something() n = ph1() ph2(n)
使用class:
class
class Ph: def __init__(self): self.n = None def ph1(): self.n = Nn.neuralNetwork(v, v, v, v) def ph2(): self.n.something()
使用global变量:
global
n = None def ph1(): global n n = Nn.neuralNetwork(v, v, v, v) def ph2(): global n n.something()
似乎n是函数ph1中本地创建的对象。如果您想从ph2访问它,您需要在ph2内调用函数并返回n,或者将这两个函数都放在一个类中,n是一个实例变量
两者中较简单者如下:
def ph1(): n = Nn.neuralNetwork(v, v, v, v) return n def ph2(): n = ph1() n.something()
这是你可以考虑的代码吗?
您得到的错误是因为
n
只存在于ph1()
函数的local namespace
中,并且ph2()
无法调用它,因为variable scope
的概念。因此,您可以使用以下选项来无误地执行此操作:使用as
parameter
使用
class
:使用
global
变量:似乎n是函数ph1中本地创建的对象。如果您想从ph2访问它,您需要在ph2内调用函数并返回n,或者将这两个函数都放在一个类中,n是一个实例变量
两者中较简单者如下:
这是你可以考虑的代码吗?
相关问题 更多 >
编程相关推荐