如何使用getattr()访问Python内置函数?
该需求完全可以实现
你示例中getattr的第一个参数填写Python标准库的builtins模块即可,正确写法如下:
import builtins getattr(builtins, 'abs')
运行验证示例:
abs_func = getattr(builtins, 'abs') print(abs_func(-45)) # 输出结果:45
补充说明
- 如果你不想显式导入
builtins模块,也可以直接使用Python默认暴露的全局对象__builtins__,写法为getattr(__builtins__, 'abs'),不过更推荐显式导入builtins的写法,可读性和规范性更强。 - 我们平时可以直接调用
abs这类内置函数,是因为Python解释器启动时会自动把builtins模块里的所有内置对象加载到全局作用域,不需要手动导入就可以直接使用,当你拿到的函数名是字符串格式时,只需要从它的定义来源builtins模块中取对应名称的对象即可。 - 如果不确定字符串对应的内置函数是否存在,可以给
getattr传入第三个参数作为默认返回值,避免抛出属性不存在的异常:func = getattr(builtins, 'xxx_not_exist', None) # 如果函数不存在,func会是None,可自行做后续逻辑判断
内容的提问来源于stack exchange,提问作者Phylosopher
相关产品推荐
相关产品推荐

