python实例化使用new方法
python中如何来创建实例对象?
让我们以一个Foo类开始:
classFoo(object):
def__init__(self,x,y=0):
self.x=x
self.y=y
当你实例化它(即创建该类的一个新的实例)时发生了什么?
f=Foo(1,y=2)
对Foo的调用到底调用了什么函数或方法呢?大多数新手甚至许多有经验的Python开发者会立刻回答:调用了__init__方法。如果你停下来仔细想1秒,你会发现这远不是一个正确答案。
__init__并没有返回一个对象,但是调用Foo(1,y=2)确实返回了一个对象。而且,__init__预期一个self参数,但是当我们调用Foo(1,y=2)时这里并没有这个参数。这里会有更复杂的工作。在这篇文章中,让我们探究下在Python中实例化一个类时到底发生了什么。
构造顺序
在Python中实例化一个对象包含了几个阶段,但它的妙处在于它们自身是Pythonic(python之禅)的——理解这些步骤使得我们对Python整体有多一点的了解。Foo是一个类,但是Python中的类也是对象!类、函数、方法以及实例都是对象,并且无论何时你将一对括号放在它们的名字后面时,就会调用它们的__call__方法。所以Foo(1,y=2)是等价于Foo.__call__(1,y=2)的。__call__方法是定义在Foo的类中的。Foo的类是什么呢?
>>>Foo.__class__
所以Foo是类型type的一个对象并且调用__call__返回一个Foo类的对象。
以上内容为大家介绍了python培训之实例化使用new方法,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。

相关推荐HOT
更多>>
python用什么编辑器
Python无处不在,似乎支持从主要网站到桌面实用程序到企业软件的所有功能。Python已经被用来编写流行的软件项目,如dnf/yum,OpenStack,OpenSh...详情>>
2023-11-09 23:59:29
python判断字符串是否为小数的方法
python想判断一个字符串是不是一个合法的小数,但是字符串没有内置判断小数的方法,所以我们动手写一个判断字符串是否是小数,可以判断正负小数...详情>>
2023-11-09 22:42:38
python如何打印列表
Python列表的打印方法如下我们知道,Python打印列表一般是要用for…in…来打印,像下面这几行代码一样:list1=[1,2,3,4,5]foriinlist1:print(i)...详情>>
2023-11-09 22:05:02
python常见面试题及答案分享
在经历一段时间的学习后,就可以去面试找工作了,一提到面试,虽说技能很重要,但面试题也固然重要,我们就需要在网上寻找一些企业常见的面试题...详情>>
2023-11-09 21:17:53