python对象初始化
Posted anovana
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python对象初始化相关的知识,希望对你有一定的参考价值。
当python对象被创建以后,需要将对象进行初始化。Python有一个构造函数和一个初始化函数:
1、构造函数__new__,只接受一个参数,即类本身(它会在对象被构造之前调用,所以这里也就没有self参数),所以它返回刚被创建的对象。在日常编程中,很少被用到。
2、初始化函数__init__,常被用到。例如我们在Point类里添加一个初始化函数,要求用户在实例化Point对象的时候提供x和y参数。
class Point: def __init__(self, x, y): self.move(x, y) def move(self,x, y): self.x = x self.y = y def reset(self): self.move(0, 0) #构造一个Point point = Point(3, 5) print(point.x, point.y) # 3 5
如果调用Point对象没有含有合适的初始化参数时,会提示“没有足够的参数”等错误。如调用上述的Point类,运行如下
>>> a = Point(3) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: __init__() missing 1 required positional argument: \'y\' >>> a = Point(3, 4, 5) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: __init__() takes 3 positional arguments but 4 were given
如果不想让两个参数是必须的,通过将初始化函数设置为默认值来实现。如将上处的__init__的代码修改如下:
class Point: def __init__(self, x = 0, y = 0): self.move(x, y)
以上是关于python对象初始化的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Swift 使用此代码片段为 iOS 应用程序初始化 SDK?
python python中的漂亮(或漂亮打印)JSON对象具有这一功能。在尝试了解什么时,我总是使用这个片段
VSCode自定义代码片段12——JavaScript的Promise对象