所以我四处寻找并找不到答案。我想在模块中更改主文件中创建的对象的参数。例如,我在这里用一段简单的代码测试它:
- 这是我的主文件,我从中创建对象并定义一些属性
import class_test_2
class dog():
name=''
spots=0
def add_spots(self):
self.spots+=1
def main():
fido=dog()
fido.name='Fido'
print('Fido\'s spots: ',fido.spots)
fido.add_spots()
print('Fido\'s spots: ',fido.spots)
class_test_2.class_test()
print('Fido\'s spots: ',fido.spots)
if __name__=='__main__':
main()
- 这是模块,我想从中使用函数来更改主文件中的属性
from class_test_1 import dog
def class_test():
fido.add_spots()
- 所以我的问题是我怎么能这样做/为什么上面这段代码不起作用? 自己运行主要功能显示每次打印时fido的点数增加1。然而,运行调用模块的代码会产生NameError,因此即使我已经设法导入它,我的模块也无法识别该类是否存在。提前感谢您的帮助。
答案 0 :(得分:1)
你的变量" fido"仅在您的" main"中定义功能。你必须提供你的" class_test"用变量函数。
例如:
class_test_2.class_test(fido)
然后你的class_test
函数得到一个参数。您可以自由选择名称。我在示例中使用了the_dog
:
def class_test(the_dog):
the_dog.add_spots()
在这种情况下,the_dog
指向dog
类的同一个实例fido
。