首页 > 解决方案 > 只允许某些 python 脚本允许导入和运行另一个脚本

问题描述

需要发生什么

我有两个独立的 python 脚本,它们引用了第三个 python 脚本。第一个脚本允许导入和运行整个第三个脚本,但第二个脚本只允许导入和运行第三个脚本中的单个函数。

问题

我面临的问题是,当我这样做时import script,整个脚本都会运行,在这种情况下会失败,我尝试过使用,if __name__ == '__main__':但是第一个脚本无法运行它。

是否有某种变体if __name__ == '__main__':能够阻止一个脚本在导入时运行整个脚本但允许另一个脚本?

标签: pythonimport

解决方案


您可以创建自己的标志。

s1.py

import s3
s3.do_something()

s2.py

import s3
s3.full_mode = False
s3.do_something()

s3.py

full_mode = True

def do_something():
    if full_mode:
        print("Full mode")
    else:
        print("Mini mode")

推荐阅读