有時候只是希望調用函數來完成那個功能而已
偏偏調用函數一定要在函數後面才能被調用(按鍵精靈可以自由調用)
我希望可以在最上層就可以自由調用下面的3個函數
該如何做?
函數1()---不能調用
函數2()---不能調用
函數3()---不能調用
def 函數1():
print("1")
函數1()---可以調用
def 函數2():
print("2")
函數3() ---這樣就不能調用?
def 函數3():
print("3")
目前我只想到這個笨笨的辦法
這樣我要啟動哪一個函數功能的話
直接在最上方的程式碼就可以變相調用函數內的功能了.
call_f1=1
call_f2=1
call_f3=1
def f1():
print("f1")
if call_f1 == 1:
f1()
def f2():
print("f2")
if call_f2 == 1:
f2()
def f3():
print("f3")
if call_f3 == 1:
f3()
你可以試試看寫成一個 class,可以看到在 function_b 裡面透過呼叫 self 對 function_c 進行調用
class Demo:
def function_a(self):
pass
def function_b(self):
self.function_c()
def function_c(self):
pass
你可以把函式寫在另外一個檔案,
然後引用那個檔案
好的~原來可以這樣使用.
我找時間測試看看我會寫嗎.
例如寫一個 myfunctions.py
然後
from myfunctions import f1, f2, f3
for func in [f1, f2, f3]:
func()
像這樣
https://gist.github.com/jeffeuxMartin/cac7065a0b7d26cfcb6aa8df5460db4d
謝謝jeffeux的解說~
這樣我懂了
call_list = ["f1", "f2", "f3"]
def f1():
print("f1")
def f2():
print("f2")
def f3():
print("f3")
for function_name in call_list:
globals()[function_name]()
參考資料:https://stackoverflow.com/questions/3061/calling-a-function-of-a-module-by-using-its-name-a-string