Get 68 built-in functions directly in python?

The command will dir(__builtins__)simply list all 151 built-in libraries.

len(dir(__builtins__)) # output 151

However, it lists 68 built-in functions in 2. Built-in Functions - Python 3.6.2 Documentation

I tried to get functions from dir(__builtins__)as the following steps:

#I hardtyped the functions as comparition.
officical_builtin_functions = ['abs','all',....]
y = official_builtin_functions
len(y) #output:68
# get official builtin functions from python_builtin_library
dir(__builtins__).index('abs') #output:79
qualified_functions = python_builtin_library[79:]
qualified_functions.pop('exit')
qualified_functions.pop('credits')
qualified_functions.pop('copyright')
qualified_functions.pop('quit')
qualified_functions.pop('license')
quilified_functions.append('__import__')
# then get the 68 qualified_functions from dir(__builtins__)

How to list 68 built-in functions directly?

+4
source share
4 answers

One approach in Python 3.5 should be to list objects with an attribute __module__and set the builtinsbottom name:

>>> sorted(k for k, v in vars(__builtins__).items()
           if k.islower() and getattr(v, '__module__', '') == 'builtins')
['__build_class__', '__import__', 'abs', 'all', 'any', 'ascii', 'bin', 'bool', 'bytearray',
 'bytes', 'callable', 'chr', 'classmethod', 'compile', 'complex', 'delattr', 'dict', 'dir', 
 'divmod', 'enumerate', 'eval', 'exec', 'filter', 'float', 'format', 'frozenset', 'getattr', 
 'globals', 'hasattr', 'hash', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass',
 'iter', 'len', 'list', 'locals', 'map', 'max', 'memoryview', 'min', 'next', 'object', 'oct',
 'ord', 'pow', 'print', 'property', 'range', 'repr', 'reversed', 'round', 'set', 'setattr',
 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars', 'zip']

, __import__ , __build_class__ - . 67 Python 3.5. 68 ... , help open , open io help ; , help :

% python3 -S
Python 3.5.3 (default, Jan 19 2017, 14:11:04) 
[GCC 6.3.0 20170118] on linux
>>> help
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'help' is not defined

, , .

+3

, , , :

import types
b = [i for i in dir(__builtins__) if isinstance(eval(i), types.BuiltinFunctionType)]

42 python 3.5.3

types, , __builtins__ , ,

b = [i for i in dir(__builtins__) if i[0].islower()]

72 , , , ? , . , .

+2

Python 42 ( 3.4) . typess:

real_builtins = [e for e in dir(__builtins__) if isinstance(eval(e), type(vars))]
len(real_builtins)
# 42
real_builtins[:5] + real_builtins[-5:]
# ['__build_class__', '__import__', 'abs', 'all', 'any',
#  'round', 'setattr', 'sorted', 'sum', 'vars']
type(abs)
#<class 'builtin_function_or_method'>

, zip int, , . :

type(zip)
# <class 'type'>
type(int)
# <class 'int'>
+1

( ) :

from inspect import isclass

documented_builtins = [x
    for x in dir(__builtins__) if not x.startswith('__') and (
        lambda y: callable(y) and not(isclass(y) and issubclass(y,
            BaseException)))(eval(x))
]

print(documented_builtins)

72 , @OferSadan simple i[0].islower()! (+1)

: copyright, credits, exit, license quit

: __import__

not x.startswith('__'), __import__, __build_class__ __loader__

+1
source

Source: https://habr.com/ru/post/1683139/


All Articles