首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >int()是一个独立的函数,还是实际上是本文中int类的一个_init_构造函数?

int()是一个独立的函数,还是实际上是本文中int类的一个_init_构造函数?
EN

Stack Overflow用户
提问于 2020-05-15 20:09:46
回答 2查看 149关注 0票数 0

(a)我试图弄清楚int(), float(), tuple()和类似的函数是独立的函数,还是像用户类的构造函数一样工作(即在covers下调用类__init__()方法)。

(b)我想找到这些方法的可用签名,如int(str)int(str, base)

(c)我尝试查看github上的源代码,但它似乎是在c层实现的,而不是在Python层上实现的。甚至没有类似头的存根Python代码。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-15 20:12:57

是的,所有这些都是类,它们是类对象。他们的typetype (它本身是一个类,一个元类):

代码语言:javascript
复制
>>> type(int)
<class 'type'>

与自定义类相同:

代码语言:javascript
复制
>>> class Foo: pass
...
>>> type(Foo)
<class 'type'>

似乎自相矛盾的是:

代码语言:javascript
复制
>>> type(type)
<class 'type'>

注意:这些对象的None__init__。这是一个特殊的方法,由构造函数调用它来运行自定义初始化。IOW:

代码语言:javascript
复制
>>> Foo.__init__ is Foo
False
票数 0
EN

Stack Overflow用户

发布于 2020-05-15 20:17:19

如果使用help(int),您将看到它是类的名称:

代码语言:javascript
复制
Help on class int in module builtins:

class int(object)
 |  int(x=0) -> integer
 |  int(x, base=10) -> integer

但是,如果进一步向下扫描,就不会看到__init__方法。实例由类的__new__方法中的内部C代码初始化。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61827555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档