Hatena::Grouppython

Pythonの覚書

2013-04-09

組み込み関数の一覧を作成する良い方法を知っている人いたら教えて下さい><

| 13:50 | 組み込み関数の一覧を作成する良い方法を知っている人いたら教えて下さい>< - Pythonの覚書 を含むブックマーク はてなブックマーク - 組み込み関数の一覧を作成する良い方法を知っている人いたら教えて下さい>< - Pythonの覚書 組み込み関数の一覧を作成する良い方法を知っている人いたら教えて下さい>< - Pythonの覚書 のブックマークコメント

__builtins__っていうモジュールが組み込みデータ型や組込み関数を持っているということはわかった。

dir()で調べてみる。

>>> dir(__builtins__)
['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BufferError', 'BytesWarning', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EnvironmentError', 'Exception', 'False', 'FloatingPointError', 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError', 'ImportWarning', 'IndentationError', 'IndexError', 'KeyError', 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'NameError', 'None', 'NotImplemented', 'NotImplementedError', 'OSError', 'OverflowError', 'PendingDeprecationWarning', 'ReferenceError', 'RuntimeError', 'RuntimeWarning', 'StandardError', 'StopIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError', 'True', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError', 'UnicodeWarning', 'UserWarning', 'ValueError', 'Warning', 'ZeroDivisionError', '_', '__debug__', '__doc__', '__import__', '__name__', '__package__', 'abs', 'all', 'any', 'apply', 'basestring', 'bin', 'bool', 'buffer', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod', 'cmp', 'coerce', 'compile', 'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'execfile', 'exit', 'file', 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'intern', 'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'long', 'map', 'max', 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'quit', 'range', 'raw_input', 'reduce', 'reload', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'unichr', 'unicode', 'vars', 'xrange', 'zip']

この中から、組込み関数だけ抽出したいのだが上手く行かない。

id:Alice1017さんにご教授いただき、組込み関数だけ取得できました。

たぶん、漏れはないはず。

サンプルコード

>>> for attr in dir(__builtin__):
    f = getattr(__builtin__,attr)
    if isinstance(f,types.BuiltinFunctionType):
        print attr
...         
__import__
abs
all
any
apply
bin
callable
chr
cmp
coerce
compile
delattr
dir
divmod
eval
execfile
filter
format
getattr
globals
hasattr
hash
hex
id
input
intern
isinstance
issubclass
iter
len
locals
map
max
min
next
oct
open
ord
pow
print
range
raw_input
reduce
reload
repr
round
setattr
sorted
sum
unichr
vars
zip

~以下、更新前~

命名規則による分類

大文字で始まっている定義は、文字列。

小文字ではじまっているのが、関数なのではないか?と短絡的に考えていたのだけれども、strなど、データ型の名前も小文字ではじまっているではないか・・・。ってことで、命名規則では分類出来ない。

isinstanceで型チェック

type()や、isinstance(obj,typeinfo)でチェックするのが王道だなと思い、以下を試す。

>>> import types
>>> for attr in dir(__builtins__):
...     if isinstance(attr,types.BuiltinFunctionType):
...             print attr
... 

見事に空振り。なぜなら、dir()が返却するのは、名前つまりstrなんです・・・。

>>> type(sum)
<type 'builtin_function_or_method'>

↑のようにfunctionの型を返却してくれると期待していただけにショック。

callableでチェック

>>> for attr in dir(__builtin__):
...     if callable(attr):
...         print attr
...  

これも見事に空振り。

これも理由は同じで、dir()が返却するのは、名前つまりstrだから。

ついでに、関数以外でもcallableがTrueを返却するんで、関数だけ抽出出来ないし・・・。

evalを使う

dir()が文字列で返却すると、こうなったらeval使うしかないなと思い以下を試す。

>>> for attr in dir(__builtin__):
    if eval('isinstance('+attr+',types.BuiltinFunctionType)'):
        print attr,
...         
__import__ abs all any apply bin callable chr cmp coerce compile delattr dir divmod eval execfile filter format getattr globals hasattr hash hex id input intern isinstance issubclass iter len locals map max min next oct open ord pow  File "<string>", line 1
    isinstance(print,types.BuiltinFunctionType)
                   ^
SyntaxError: invalid syntax

printのところで怒られる。。。どうしようか。。。

Alice1017Alice10172013/04/10 17:46初めまして。コメント失礼します。

for attr in dir(__builtins__):
... if isinstance(attr,types.BuiltinFunctionType):
... print attr

この処理で、isinstanceの前に getattr(__builtins__, attr)で関数そのものを取得すればいいんじゃないかと思います
まだコンソールで試してないのですが、動くと思います。

for attr in dir(__builtins__):
... f = getattr(__builtins__, attr)
... if isinstance(f,types.BuiltinFunctionType):
... print attr

oneshotlife_tomoneshotlife_tom2013/04/11 20:40>Alice1017さん
コメントありがとうございます。
ご教授いただいた通りで期待通りの動作をしました。
勉強になりました。

xvwioxqsfqxvwioxqsfq2014/04/12 20:59wbtmvqzuipo, <a href="http://www.cabtgppukz.com/">ajnbtjwxfz</a> , [url=http://www.xcwogexcne.com/]ooupkwdktj[/url], http://www.blrwbwlcoy.com/ ajnbtjwxfz

AnthonyGrokyAnthonyGroky2018/02/25 15:37Приобрести сочную итальянскую пиццу в МО сегодня трудно. Тем не менее, мы решились пропиарить ресурс, где вы можете приобрести настоящую итальянскую пиццу в столице.

Пицца сервис, который своими усилиями делает <a href=https://avepizza.ru>пицца м алексеевская</a> , очень популярен. Вы сможете заказать вегетарианскую или мексиканскую пиццу и вам выпекут её очень быстро. Отвозка охватывает не более 40 минут.

Купить пиццу можно на avepizza.ru, где находится много акций.

AvePizza привозит вкусную пиццу в Москве к вашему входу на дом или в офисное помещение. Пицца приготавливается людьми, которые есть специалистами в их секторе. В этой связи, пиццерия уже успела завоевать доверие у москвичей и гостей столицы. Заказать пиццу можно через виртуальную платформу на сайте.

Также есть способ оформить заказ и через номер телефона, который указан на портале.

uxikibeosuxikibeos2019/05/11 10:34http://mewkid.net/buy-amoxicillin/ - Amoxil <a href="http://mewkid.net/buy-amoxicillin/">Amoxicillin</a> ssu.undl.python.g.hatena.ne.jp.afy.ou http://mewkid.net/buy-amoxicillin/

utmosezyoqautmosezyoqa2019/05/11 11:02http://mewkid.net/buy-amoxicillin/ - Buy Amoxicillin <a href="http://mewkid.net/buy-amoxicillin/">Amoxicillin 500mg</a> lhd.exhn.python.g.hatena.ne.jp.kvx.hj http://mewkid.net/buy-amoxicillin/

rowipayequcurowipayequcu2019/06/02 08:37http://mewkid.net/buy-amoxicillin/ - Amoxicillin 500 Mg <a href="http://mewkid.net/buy-amoxicillin/">Buy Amoxicillin</a> kqm.nvdo.python.g.hatena.ne.jp.gmn.yl http://mewkid.net/buy-amoxicillin/

tayepocijafoetayepocijafoe2019/06/25 23:00http://mewkid.net/buy-amoxicillin/ - Amoxicillin 500mg <a href="http://mewkid.net/buy-amoxicillin/">Amoxicillin 500mg Capsules</a> uhg.qqlf.python.g.hatena.ne.jp.zno.rw http://mewkid.net/buy-amoxicillin/

igawunipuxowigawunipuxow2019/06/25 23:31http://mewkid.net/buy-amoxicillin/ - Amoxicillin <a href="http://mewkid.net/buy-amoxicillin/">Amoxicillin Online</a> ygw.mpli.python.g.hatena.ne.jp.hil.nz http://mewkid.net/buy-amoxicillin/

icesirujakvoicesirujakvo2019/07/04 20:13http://mewkid.net/buy-amoxicillin/ - Amoxicillin Purchase <a href="http://mewkid.net/buy-amoxicillin/">Amoxicillin 500 Mg</a> zkn.mxgf.python.g.hatena.ne.jp.nxp.qy http://mewkid.net/buy-amoxicillin/

anekatuanekatu2019/07/04 21:01http://mewkid.net/buy-amoxicillin/ - Amoxil <a href="http://mewkid.net/buy-amoxicillin/">Amoxicillin - Prix.achetercommander.fr</a> ysz.yjby.python.g.hatena.ne.jp.jjq.kw http://mewkid.net/buy-amoxicillin/

PeterStoofPeterStoof2019/07/19 19:41AAi is part of Asad Abbas & Co. (Chartered Accountants), an accounting, tax and business consultancy firm in UAE and a member of PrimeGlobal International, one of the 5 largest associations of independent accounting firms in the world. Asad Abbas & Co. (Chartered Accountants) provides cost-effective and efficient professional services to the business community.

elenimefexelenimefex2019/09/12 02:59http://mewkid.net/order-amoxicillin/ - Amoxicillin Online <a href="http://mewkid.net/order-amoxicillin/">Amoxil Side Affects</a> eaq.adxf.python.g.hatena.ne.jp.sym.ej http://mewkid.net/order-amoxicillin/

miheoebibmiheoebib2019/09/12 03:22http://mewkid.net/order-amoxicillin/ - Amoxicillin 500mg <a href="http://mewkid.net/order-amoxicillin/">Amoxicillin No Prescription</a> ubq.qdas.python.g.hatena.ne.jp.vnc.pz http://mewkid.net/order-amoxicillin/

ajocedyixeleajocedyixele2019/09/16 01:08http://mewkid.net/order-amoxicillin/ - Buy Amoxicillin Online <a href="http://mewkid.net/order-amoxicillin/">Buy Amoxicillin Online</a> rey.wfui.python.g.hatena.ne.jp.neq.qm http://mewkid.net/order-amoxicillin/

iemibolomaegiiemibolomaegi2019/09/16 01:34http://mewkid.net/order-amoxicillin/ - Amoxil <a href="http://mewkid.net/order-amoxicillin/">Amoxicillin Online</a> rcr.sgav.python.g.hatena.ne.jp.mxz.ob http://mewkid.net/order-amoxicillin/

uvulubeuvulube2019/10/15 23:30http://mewkid.net/buy-xalanta/ - Amoxicillin 500mg Dosage <a href="http://mewkid.net/buy-xalanta/">Buy Amoxicillin</a> mib.iawk.python.g.hatena.ne.jp.qmz.tl http://mewkid.net/buy-xalanta/

acenoqazoracenoqazor2019/10/15 23:54http://mewkid.net/buy-xalanta/ - Amoxicillin 500 Mg <a href="http://mewkid.net/buy-xalanta/">Amoxil Causes Gallstones</a> oev.lnvt.python.g.hatena.ne.jp.zvs.qz http://mewkid.net/buy-xalanta/

aqotatezorodeaqotatezorode2019/10/25 15:43http://mewkid.net/buy-xalanta/ - Amoxicillin <a href="http://mewkid.net/buy-xalanta/">Amoxicillin 500mg</a> sss.ftzd.python.g.hatena.ne.jp.ceq.il http://mewkid.net/buy-xalanta/

neigoicexeneigoicexe2019/10/25 16:14http://mewkid.net/buy-xalanta/ - Amoxicillin <a href="http://mewkid.net/buy-xalanta/">Amoxicillin</a> oom.gdfc.python.g.hatena.ne.jp.psn.ek http://mewkid.net/buy-xalanta/

iretewewiiretewewi2019/11/06 23:58http://mewkid.net/where-is-xena/ - Amoxicillin On Line <a href="http://mewkid.net/where-is-xena/">Amoxicillin</a> uls.bzrc.python.g.hatena.ne.jp.kaj.em http://mewkid.net/where-is-xena/

zglgiRixzglgiRix2019/12/13 22:46online viagra generic viagra sales <a target="_blank" href="https://pharm-usa-official.com ">buy viagra </a> sale generic viagra online pills viagra online generic

viagra online online viagra generic <a href=https://pharm-usa-official.com>viagra online stock price</a> buy viagra samples generic viagra online pharmacy

online viagra generic buy viagra generic online usa pharmacy <a target="_blank" href="https://pharm-usa-official.com ">cheap viagra online without prescription </a> sale generic viagra online pills viagra

online viagra generic viagra without a doctor prescription <a href=https://pharm-usa-official.com>cheap viagra usa without prescription</a> viagra online buy viagra online

eohxnRixeohxnRix2019/12/14 23:32viagra generic viagra without prescription <a target="_blank" href="http://darkear.com/__media__/js/netsoltrademark.php?d=viagrnetwork.com/?generic%20viagra%20sales ">viagra generic </a> online viagra viagra without prescription
online viagra generic viagra online generic <a href=http://everydaycosmic.com/__media__/js/netsoltrademark.php?d=viagrnetwork.com/?viagra>buy generic viagra online</a> generic viagra generic viagra without a doctor prescription
viagra without doctor prescription viagra online stock price <a target="_blank" href="http://ntphariscounseling.com/__media__/js/netsoltrademark.php?d=viagrnetwork.com/?viagra ">online viagra generic </a> buy generic viagra online generic drugs for sale generic viagra
viagra online stock price buy generic cheap viagra online <a href=http://michiganindustrialtools.com/__media__/js/netsoltrademark.php?d=viagrnetwork.com/?cheap%20viagra%20online%20without%20prescription>viagra online generic</a> viagra online generic viagra generic online pharmacy

WilliamVewWilliamVew2020/01/11 22:31viagra for men http://cialisxtl.com pfizer viagra coupons from pfizer

AnthonyjarAnthonyjar2020/01/12 18:06canadian pharmacy prices http://cialisxtl.com cialis for peyronie

AntoniounretAntoniounret2020/01/13 10:27nose congested when taking cialis <a href=" http://cialisxtl.com/#w ">cheap cialis</a> canadian viagra cialis

AntoniounretAntoniounret2020/01/13 17:30viagra online <a href=" http://cialisxtl.com/#h ">cialis</a> cialis without doctor prescription

AntoniounretAntoniounret2020/01/14 00:33generic viagra online canadian pharmacy <a href=" http://cialisxtl.com/#a ">cialis xtl</a> cialis 20mg

AntoniounretAntoniounret2020/01/14 07:34cialis for daily use <a href=" http://cialisxtl.com/#1 ">order cialis</a> sildenafil vs viagra

AntoniounretAntoniounret2020/01/14 14:59cialis money order <a href=" http://cialisxtl.com/#0 ">cialis online</a> side effects of viagra

AntoniounretAntoniounret2020/01/14 21:57cialis prices <a href=" http://cialisxtl.com/#b ">cialis xtl</a> viagra canadian pharmacy vipps approved

AntoniounretAntoniounret2020/01/15 11:49canadian pharmacy near me <a href=" http://cialisxtl.com/#8 ">buy cialis online</a> coupons for cialis

AntoniounretAntoniounret2020/01/15 18:51cialis pills for sale <a href=" http://cialisxtl.com/#e ">buy cialis</a> viagra canada

AntoniounretAntoniounret2020/01/16 09:01viagra vs cialis vs levitra <a href=" http://cialisxtl.com/#q ">buy cialis</a> cialis lowest price

AntoniounretAntoniounret2020/01/16 16:16generic viagra <a href=" http://cialisxtl.com/#n ">order cialis</a> the canadian pharmacy

AntoniounretAntoniounret2020/01/16 23:27cialis coupon <a href=" http://cialisxtl.com/#c ">cialis coupon</a> viagra canadian pharmacy

AntoniounretAntoniounret2020/01/17 06:42canadian pharmacy price checker <a href=" http://cialisxtl.com/#n ">order cialis</a> lowest price cialis

AntoniounretAntoniounret2020/01/17 13:44legit canadian online pharmacy <a href=" http://cialisxtl.com/#l ">cialis coupon</a> canadian pharmacy king reviews