1. 程式人生 > >python對象初始化

python對象初始化

div cnblogs 添加 有一個 err ast () 之前 ive

當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對象初始化