導入模塊的內置功能,我有一個應用程序,我想,當情況發生時替換某些功能,例如:改寫從導入模塊
condition_check.py:
Flag = True
import ctypes # An included library with Python install.
import inspect
def MsgBox(msg):
ctypes.windll.user32.MessageBoxA(0, msg, 'MsgBox', 1)
def check():
global print
if Flag:
def print(msg):
MsgBox(msg)
else:
pass
爲主。潘岳:
## works
from condition_check import *
MsgBox('this is msgbox')
print('this is a print')
## does not work
import condition_check
condition_check.MsgBox('this is msgbox')
print('this is a print')
我明白condition_check.py
是壓倒一切的自己的print
代替main.py
「 s print
。我相信檢查庫可用於此目的,但我無法查找一個示例。
不要有條件覆蓋定義過。這似乎是一個聰明的伎倆,但它肯定會破壞事物,或者至少混淆下一個必須查看代碼的人(包括你)。如果Flag:MsgBox(message)else:print(message)''好得多。變量名'Flag'也是沒有意義的,如果你是Python的新手,忘記了'global',它將會讓你陷入困境。 – msw
不幸的是我打算main.py不知道它使用的某些函數被覆蓋。 – user1502776