![](/img/trans.png)
[英]How do I call globals() from another imported function in Python?
[英]How do i call a class method using the globals() function?
我正在嘗試使用globals()
function 調用 class 方法。我知道您可以使用globals()
調用函數,因為它適用於普通函數。 這是我擁有的代碼的簡單版本:
class test():
def func1():
print("test")
globals()["test.func1"]
這也不起作用:
globals()["test"].globals()["func1"]
我如何在不對其進行硬編碼的情況下調用 function。
我需要globals()
function,因為我事先不知道我要調用哪個 function。
先獲取class,再獲取其屬性。
globals()["test"].func1()
或者
globals()["test"].__dict__['func1']()
或者
eval("test.func1()")
這也是可能的:
class A:
class B:
class C:
def func1():
print("test")
def call_by_dot(string):
first, *rest = string.split(".")
obj = globals()[first]
for i in rest:
obj = getattr(obj, i)
return obj
call_by_dot("A.B.C.func1")()
這會起作用:
class Test:
def func1():
print("test working")
Test.func1()
這將運行 function func1()
並產生結果。
output:
test working
class test():
def func1():
print ("test")
eval("test.func1()")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.