私はこれを思いついた:
[a for a in dir(__builtins__) if str(type(getattr(__builtins__,a))) == "<type 'builtin_function_or_method'>"]
私はそれが醜いことを知っています。これを行うためのより良い/よりPython的な方法を教えてもらえますか?
私はこれを思いついた:
[a for a in dir(__builtins__) if str(type(getattr(__builtins__,a))) == "<type 'builtin_function_or_method'>"]
私はそれが醜いことを知っています。これを行うためのより良い/よりPython的な方法を教えてもらえますか?
inspect
モジュールがあります:
import inspect
filter(inspect.isbuiltin, (member for name, member in inspect.getmembers(__builtins__)))
編集:ドキュメントをもう少し詳しく読んで、使用しないこのバリアントを思いつきました__getattr__
import inspect
members = (member for name, member in inspect.getmembers(__builtins__))
filter(inspect.isbuiltin, members)
getattr を使用しない場合のバリエーションを次に示します。
import inspect
[n.__name__ for n in __builtins__.__dict__.values() if inspect.isbuiltin(n)]
そして、実際の関数ポインターが必要な場合:
import inspect
[n for n in __builtins__.__dict__.values() if inspect.isbuiltin(n)]