我正在寻找一种方法来捕获Python中的所有std类型函数(int,str,xrange等)。
基本上任何具有<type X>
而不是<class X>
的repr的东西。这是Python 2中所有std类型的完整列表:
https://docs.python.org/2/library/stdtypes.html
如果我使用isinstance(X, type)
或type(X) == type
,它也会捕获所有类,但我只想检测类型函数(或任何分配给其中一个的名称(即my_int = int
) )。
我想到的唯一想法是检查X.__name__
是否在__builtins__
中,但我不确定这是否是一个干净或正确的解决方案。
答案 0 :(得分:0)
你的建议对我来说似乎很好。
builtin = dir(__builtins__)
def is_builtin(tested_object):
return tested_object.__class__.__name__ in builtin
但请记住,内置类型可能会黯然失色。
Rob发表评论后更新:
def is_builtin(tested_object):
return tested_object.__class__.__module__ == '__builtin__'
答案 1 :(得分:0)
要检查变量是类还是内置类型,请使用inspect模块。
i := 2
awkPart := fmt.Sprintf("awk '{print $%d/1024}'", i)
out, err := exec.Command("bash", "-c", "tail -n 1 /var/log/apache2/access.log | "+awkPart+" | tee -a mem_usage.csv").Output()
或者,尝试type()。适用于Python 2.75和3。
Markup.keyboard([
[{text:context.i18n.t('buttons.nearestEventsNow'),request_location:true}],
[context.i18n.t('buttons.timeAndLocation')],]).resize().extra()
我不明白“标准类型函数”的含义,我认为它们可能只是类型。