Python 根据字符串调用本地函数

Python
import sys # 自定义的函数 def hello(d): print(f"hello world {d}") # 调用函数 hello 方法一 getattr(sys.modules[__name__], 'hello')('first demo') # 获取当前脚本名称 print(sys.modules[__name__]) # 在类中调用 locals 函数 class New(): @staticmethod def run_fnc_body(fc_name,b_data): # rdb.set_trace() return getattr(sys.modules[__name__], fc_name)(b_data) def __init__(self): self.run_fnc_body('hello','d') self.run_fnc_body('hello','f') @staticmethod def run_fnc_body(fc_name, b_data): return getattr(sys.modules[__name__], fc_name)(b_data) a = New() a.run_fnc_body('hello','f')
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import sys
 
# 自定义的函数
def hello ( d ) :
     print ( f "hello world {d}" )
 
# 调用函数 hello 方法一
getattr ( sys . modules [ __name__ ] , 'hello' ) ( 'first demo' )
 
# 获取当前脚本名称
print ( sys . modules [ __name__ ] )
 
 
# 在类中调用 locals 函数
class New ( ) :
     @ staticmethod
     def run_fnc_body ( fc_name , b_data ) :
         # rdb.set_trace()
         return getattr ( sys . modules [ __name__ ] , fc_name ) ( b_data )
 
     def __init__ ( self ) :
         self . run_fnc_body ( 'hello' , 'd' )
         self . run_fnc_body ( 'hello' , 'f' )
     @ staticmethod
     def run_fnc_body ( fc_name , b_data ) :
         return getattr ( sys . modules [ __name__ ] , fc_name ) ( b_data )
a = New ( )
a . run_fnc_body ( 'hello' , 'f' )
 



  • zeropython 微信公众号 5868037 QQ号 5868037@qq.com QQ邮箱
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值