检查是否内置了python函数

时间:2014-04-18 07:11:32

标签: python python-2.7 built-in

如何检查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 :(得分: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))