PYTHON中的"外部变量":

我有一个文件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


您可以这样做:

选择 | 换行 | 行号
  1. # FileA.py
  2.  
  3. import FileB
  4.  
  5. a = 12
  6. b = 24
  7. c = 24
  8.  
  9. for attr in ('a', 'b', 'c'):
  10.     setattr(FileB, attr, eval(attr))
  11.  
  12. result = FileB.f()
# 回答2


他们应该能够理解将数据写入文件和关闭文件。文件B中的函数将打开并读取该文件。此外,您还可以使用类属性,但这可能也超出了它们的范围。

选择 | 换行 | 行号
  1. ## file classC.py
  2. class Class_C:
  3.    test_string = "abc"
  4.    test_number = 1
  5.  
  6. ## fileA
  7. import classC
  8. import fileB
  9.  
  10. print classC.Class_C.test_string
  11. classC.Class_C.test_number = 2
  12. fileB.print_number()
  13.  
  14. ## fileB
  15. import classC
  16.  
  17. def print_number():
  18.     print "inside fileB", classC.Class_C.test_number 

标签: python

添加新评论