首页 / 知识
python实例化使用new方法
2023-11-12 13:16:00
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相关知识,请关注我们
最新内容
相关内容
python的三角函数在哪?
python的三角函数在哪?,标准,培训,函数,反函数,方法,下面,以上,更多,内容,python中的三角函数在python的标准库math中,math已经包含在你的标python中获取路径的三种方法
python中获取路径的三种方法,工作,代码,情况,培训,下来,路径,文件,也就是,桌面,目录,python中获取路径总结下来分为三种情况:1、获取工作目录python中函数怎么表示?
python中函数怎么表示?,名称,标准,培训,代码,函数,圆括号,字符串,表达式,选择性,自变量,python中函数定义规则:·函数代码块以def关键词开头,后python有函数重载吗?
python有函数重载吗?,情况,代码,设计,名字,培训,函数,参数,功能,类型,两个,python中没有函数重载。为了考虑为什么python不提供函数重载,首先python map()函数怎么用?
python map()函数怎么用?,培训,函数,序列,列表,参数,元素,示例,字符串,语法,例子,pythonmap()会根据提供的函数对指定序列做映射。第一个参数python常用函数包有哪些?
python常用函数包有哪些?,项目,数据,标准,系统,基础,代码,地址,分析,检测,网站,一些python常用函数包:1、Urllib3Urllib3是一个Python的HTTP客python函数里面形参和实参一样吗?
python函数里面形参和实参一样吗?,培训,函数,参数,里面,变量,实际,形式,全称,示例,后面,python函数里面形参和实参不一样。形参全称是形式参python中的open函数如何编码?
python中的open函数如何编码?,数据,系统,可取,培训,文件,参数,函数,时候,表示,模式,python中的open函数可以通过在打开文件时添加encoding参python中什么叫递归函数?
python中什么叫递归函数?,规模,培训,函数,嵌套,内部,不是,实例,特性,层次,效率,1、什么叫递归函数?在函数内部,可以调用其他函数。如果一个函python列表有哪些常用方法?
python列表有哪些常用方法?,位置,方法,培训,列表,语法,元素,示例,对象,以上,参数,列表是最常用的Python数据类型,它可以作为一个方括号内的逗python中的sum函数怎么用?
python中的sum函数怎么用?,培训,函数,总和,参数,列表,示例,语法,对象,以上,结果,python中的sum()函数用来进行求和计算,函数语法为:sum(iterablpython有主函数吗?
python有主函数吗?,代码,情况,培训,模块,函数,脚本,作用,方式,文件,文件名,python有主函数,书写格式如下:if__name__==__main__:passpython主函