Python中__init__的理解
在Python中定義類經常會用到__init__函式(方法),首先需要理解的是,兩個下劃線開頭的函式是宣告該屬性為私有,不能在類的外部被使用或訪問。而__init__函式(方法)支援帶引數類的初始化,也可為宣告該類的屬性(類中的變數)。__init__函式(方法)的第一個引數必須為self,後續引數為自己定義。
例如我們定義一個Box類,有width, height, depth三個屬性,以及計算體積的方法:
從文字理解比較困難,通過下面的例子能非常容易理解這個概念:
#!/usr/bin/python
# -*- coding utf-8 -*-
#Created by Lu Zhan
class Box:
def setDimension(self, width, height, depth):
self.width = width
self.height = height
self.depth = depth
def getVolume(self):
return self.width * self.height * self.depth
b = Box()
b.setDimension(10, 20, 30)
print(b.getVolume())
我們在Box類中定義了setDimension方法去設定該Box的屬性,這樣過於繁瑣,而用__init__()這個特殊的方法就可以方便地自己對類的屬性進行定義,init()方法又被稱為構造器(constructor)。
#!/usr/bin/python
# -*- coding utf-8 -*-
#Created by Lu Zhan
class Box:
#def setDimension(self, width, height, depth):
# self.width = width
# self.height = height
# self.depth = depth
def __init__(self, width, height, depth):
self.width = width
self.height = height
self.depth = depth
def getVolume(self):
return self.width * self.height * self.depth
b = Box(10, 20, 30)
print(b.getVolume())
相關文章
- Python中__init__的用法和理解Python
- (學習筆記)python 對__init__的初步理解筆記Python
- Python面試之理解__new__和__init__的區別Python面試
- python中__init__ 和__new__的對比Python
- Python中的__init__()方法整理中(兩種解釋)Python
- python中的__init__ 、__new__、__call__小結Python
- Python 中的 super(類名, self).__init__() 的含義Python
- Python 中__init__函式以及引數selfPython函式
- 簡述Python類中的 __init__、__new__、__call__ 方法Python
- Python中__new__和__init__的區別與聯絡Python
- Python __new__ 和 __init__ 的區別Python
- 一問搞懂python的__init__和__new__方法Python
- python的__init__幾種方法總結【轉載】Python
- 理解Python中的元類Python
- 類中的__init__()和__call__()函式函式
- 理解Python中的Lambda函式Python函式
- 深入理解python中的yieldPython
- 更深入的理解Python中的迭代Python
- 更深入的理解 Python 中的迭代Python
- 如何理解Python中的繼承?python入門Python繼承
- 對 Python 中 GIL 的一點理解Python
- Python語言中__init__與__new__的區別是什麼?Python
- 深入理解python中的類和物件Python物件
- 深入理解Python中的裝飾器Python
- python 詳解類class的繼承、__init__初始化、super方法Python繼承
- 詳解Python魔法函式,__init__,__str__,__del__Python函式
- 關於引用(python中的偽指標)的理解Python指標
- Python學習系列之類的定義、建構函式 def __init__Python函式
- Python成功解決TypeError: __init__() missing 1 required positional argument: ‘comment‘PythonErrorUI
- python中的__name__=='__main__'如何簡單理解PythonAI
- 淺談對python pandas中 inplace 引數的理解Python
- 你真的理解Python中的賦值、傳參嗎?Python賦值
- 理解Python中的類物件、例項物件、屬性、方法Python物件
- Python 中的變數還能這樣理解(白話)Python變數
- 如何理解Python3中的子類和父類?Python
- Python中關於++和—(自增和自減)的理解Python
- 理解Python的協程(Coroutine)Python
- python 程式的使用和理解Python