Skip to main content
 首页 » 编程设计

python之检查模块中运行脚本文件的名称

2025年05月04日21jirigala

我有 2 个导入相同模块的应用程序文件:

#app1.py 
import settings as s 
another code 
 
#app2.py 
import settings as s 
another code 

如果运行第一个或第二个应用程序,我需要在模块中检查:

#settings.py 
#pseudocode 
if running app1.py: 
   print ('app1') 
elif: 
   print ('app2') 

我检查模块 inspect但不知道。

此外,我对所有更好的解决方案持开放态度。

编辑:我觉得有点傻(我想这很容易)

我尝试:

var = None 
def foo(a): 
    var = a 
 
print (var) 

但仍然无。

请您参考如下方法:

我不确定进口商是否有可能知道是谁进口的。即使是这样,对我来说也像是代码的味道。

相反,您可以将决定由 app1 和 app2 执行,而不是让 settings做出那个决定。

例如:

settings.py

def foo(value): 
    if value == 'app1':  
        # do something         
    else: 
        # do something else 

app1.py

from settings import foo     
foo('app1') 

等等。


在函数内分配并让它反射(reflect)在全局变量上。示例:

A.py

var = None 
 
def foo(a): 
    global var 
    var = a 
 
def print_var(): 
    print(var) 

测试.py

import A 
 
A.print_var() 
A.foo(123) 
A.print_var() 

输出:

None 
123 

请注意,一般不建议将 global 作为编程习惯,因此请尽可能少地使用它们。