我在Python 3.4中做到了这一点:
>>> type(int)
<class 'type'>
>>> int(0)
0
Run Code Online (Sandbox Code Playgroud)
现在我想知道int究竟是什么.它是一种类型,还是一种功能?两者都是吗?如果两者兼而有之,那么所有类型都可以被称为函数吗?
int是一个内置类/类型:
>>> isinstance(int, type)
True
Run Code Online (Sandbox Code Playgroud)
当您调用 时int('123'),Python 发现它int本身不是一个函数,但随后尝试调用int.__call__('123'); 这本身决定了 type.__dict__['__call__'];这是作为参数调用的(int, '123')。的默认__call__实现type尝试构造一个作为第一个参数给出的类型的新对象(这里int,通过调用__new__该类型类上的方法;因此 的行为int('123')间接来自int.__new__(int, '123'),它构造一个int具有给定值的新实例字符串被解析为整数。
两者都是。在 Python 中,类型具有同名的关联函数,如果可以的话,这些函数会将它们的参数强制转换为指定类型的对象。因此,类型具有随之而来的int <type 'int'>功能。int
| 归档时间: |
|
| 查看次数: |
970 次 |
| 最近记录: |