我有3个python文件(模块)A,B和C.
A是主要模块。
B是一个模块,它使用numpy模块声明和初始化了一些变量和数组。所有变量都被声明为全局。
C是一个模块,它应该将数据写入B中声明的变量。
所以我正在尝试这个:
运行模块A.
将B中的所有变量导入A。
在C中声明全局变量并将数据写入它们。
但它不起作用。当我尝试从A打印出一个数组时,它只打印初始化的数组而不是修改后的数组。 任何关于如何正确使其发挥作用的想法。
非常感谢帮助。
答案 0 :(得分:1)
Python故意让这样的事情变得非常困难。当你这样做时,你很可能犯错误,事情就会出错。当他们出错时,很难找出错误的位置。
一般来说,模块A可以从模块B读取变量,但不能写入它们。当您尝试写入变量时,将使用相同的名称创建一个新变量。这非常令人困惑,如果你想要保持理智,当然应该避免:)
如果要将数据从一个模块/文件/脚本/其他内容传递给另一个模块/文件/脚本,通常将所有内容都包装在函数中。您可以保持B不变,使用包含默认值的全局(只读)变量。使C成为将数据作为参数并返回结果的函数集合。从A开始,首先读取B中的变量,然后开始调用C中的函数,将相关数据作为参数传递,并将结果存储在新变量中。