我有一个文件fileA.py,我的学生在其中输入一些数据并填写代码的某一部分。他们从文件fileA.py内的模块fileB.py中调用了几个函数。当他们调用函数时,我不希望他们将数据作为参数传递,因为这会让他们非常困惑(他们是9年级的学生)。因此,我希望将fileA.py的数据提供给fileB.py。我不能用
来自__文件__导入*
因为,这将是一个递归调用。我已经在fileA.py中使用了它。因此,我需要一种方法来解决这个问题,这样我就可以使用在fileA.py中定义的变量来供fileB.py使用。我有一个想法是创建一个旁路.py,这样就可以
FILEA从FILEB调用函数。
FileB中的函数调用byass.py中的函数
绕过.py访问fileA.py并返回到fileB.py。
因此,在某种程度上避免了递归。
# 回答1
您可以这样做:
- # FileA.py
-
- import FileB
-
- a = 12
- b = 24
- c = 24
-
- for attr in ('a', 'b', 'c'):
- setattr(FileB, attr, eval(attr))
-
- result = FileB.f()
# 回答2
他们应该能够理解将数据写入文件和关闭文件。文件B中的函数将打开并读取该文件。此外,您还可以使用类属性,但这可能也超出了它们的范围。
- ## file classC.py
- class Class_C:
- test_string = "abc"
- test_number = 1
-
- ## fileA
- import classC
- import fileB
-
- print classC.Class_C.test_string
- classC.Class_C.test_number = 2
- fileB.print_number()
-
- ## fileB
- import classC
-
- def print_number():
- print "inside fileB", classC.Class_C.test_number