2014-04-18 61 views
0

如何检查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

任何帮助将是AP preciated

+0

@TimCastelijns这不会对'os.path.join'工作。 –

+0

请问使用案例是什么? – XORcist

+0

“内置”的含义是什么? 'os.path.join'不是Python中的“内置”函数。 – emeth

回答

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))