Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
管理不同的python脚本并调用它们_Python_Python 2.7 - Fatal编程技术网

管理不同的python脚本并调用它们

管理不同的python脚本并调用它们,python,python-2.7,Python,Python 2.7,为了便于维护,我将python程序分为不同的文件 以下是python脚本文件名: 1.master.py 2.setup.py 3.core1.py 4.core2.py 5.standard.py master.py: import setup import standard do something import setup import standard if __name__ == '__main__': do something s

为了便于维护,我将python程序分为不同的文件

以下是python脚本文件名:

  1.master.py
  2.setup.py
  3.core1.py
  4.core2.py
  5.standard.py
master.py:

   import setup
   import standard
   do something
import setup
import standard

if __name__ == '__main__':
    do something
setup.py:

   import standard
   a = 5
   b = 5 
   if standard.d == 10:
       do something 
import standard

def a():
    return 5
def b():
    return 5

if __name__ == '__main__':
    if standard.d == 10:
        do something
standard.py:

  import setup 
  if setup.a == 5:
      d = 10 
      do something  
import setup 

def d():
    if setup.a == 5:
        return 10
    else:
        print 'setup.a != 5'

if __name__ == '__main__':
    if setup.a == 5:
        do something
当我们运行主脚本时,它将导入setup.py,setup.py将导入standard.py。我们将获得错误消息设置。未定义

我有两种选择来解决这个问题

  • 为setup.py和standard.py创建单个脚本
  • 将setup.py更改为:

    a = 5
    b = 5
    import standard 
    if standard.d == 10:
       do something        
    
  • 选项2不是最好的,因为python建议总是在程序的第一个阶段导入模块

    选项1是可以实现的,但如果分别使用setup.py和standard.py,那就太好了


    任何建议都会有很大帮助。我是编程界的新手。因此我需要专家的建议,他们将如何处理这种情况

    我建议您将其他脚本应该使用的对象分离为函数(甚至类),然后编写脚本的私有主体

    代码如下所示:

    master.py:

       import setup
       import standard
       do something
    
    import setup
    import standard
    
    if __name__ == '__main__':
        do something
    
    setup.py:

       import standard
       a = 5
       b = 5 
       if standard.d == 10:
           do something 
    
    import standard
    
    def a():
        return 5
    def b():
        return 5
    
    if __name__ == '__main__':
        if standard.d == 10:
            do something
    
    standard.py:

      import setup 
      if setup.a == 5:
          d = 10 
          do something  
    
    import setup 
    
    def d():
        if setup.a == 5:
            return 10
        else:
            print 'setup.a != 5'
    
    if __name__ == '__main__':
        if setup.a == 5:
            do something
    

    不要使用循环导入。这两个文件正在无休止地相互导入