在python中,将函数转换为模块时如何处理变量
我想将函数放在一个单独的文件中,但它会抱怨var变量。我在下面的简单代码中展示了这一点: a、 py: 现在我想把这个子类放到另一个名为b.py的文件中。如果我只是将plotPrediction复制并粘贴到b.py中,如下所示: b、 py: 然后我将子类从b导入到a.py,并将其命名为:在python中,将函数转换为模块时如何处理变量,python,function,variables,module,Python,Function,Variables,Module,我想将函数放在一个单独的文件中,但它会抱怨var变量。我在下面的简单代码中展示了这一点: a、 py: 现在我想把这个子类放到另一个名为b.py的文件中。如果我只是将plotPrediction复制并粘贴到b.py中,如下所示: b、 py: 然后我将子类从b导入到a.py,并将其命名为: from b import subclass vars=[] subclass.function(x,y,z) 然后,如果我运行a.py,它会抱怨没有定义名称“var”。 那么,将函数转换为模块的正确方法是
from b import subclass
vars=[]
subclass.function(x,y,z)
然后,如果我运行a.py,它会抱怨没有定义名称“var”。
那么,将函数转换为模块的正确方法是什么
我知道我可以将变量作为参数传递给子类中的函数,因为有一个kwargs。然而,我从父类继承这个类,所以当传递一些额外的参数时,我会破坏继承吗?还是有这样做的顾虑
编辑:
我想我可以通过将var变量传递给我的函数来实现这一点。但是,我需要通过函数修改新的var。因为我从父类继承它,所以我不想修改父类以返回修改过的变量。部分原因是父类很复杂,我不知道该函数在哪里调用,所以我不知道应该在哪里捕获返回的变量。另一个原因是如果我返回一个变量,我需要对软件进行一些更改,这样下次升级软件时,我会遇到一个坏软件。
那么,我如何在不返回修改后的var的情况下实现这一点呢
class subclass(Callback):
def function(self, x,y=None, z=None, **kwargs):
vars.clear()
from b import subclass
vars=[]
subclass.function(x,y,z)