检查Python函数是否为内置函数
我该如何检查一个Python函数是否是内置函数呢?
我想要的效果是这样的:
def abc(x):
return x
is_builtin(abc)
应该返回 False
import os
is_builtin(os.path.join)
应该返回 True
from os import *
is_builtin(path.join)
应该返回 True
任何帮助都非常感谢
1 个回答
0
试试这个:
import sys
import os
lib_path = os.path.dirname(os.__file__)
def is_battery_inc(arg):
if hasattr(arg, "__call__"):
if hasattr(arg, "__module__"):
module = sys.modules[arg.__module__]
if module == __builtin__:
return True
if hasattr(module, "__file__"):
return lib_path == os.path.dirname(module.__file__)
return False
def test():
pass
print(is_battery_inc(os.path.join))
print(is_battery_inc(test))
print(is_battery_inc(map))