classstudent(object):
stu_school = '
hnie
'stu1_obj.stu_name = '
featherwit'#
stu1_obj.__dict__['stu_name'] = 'featherwit'
stu1_obj.stu_age = 18 #
stu1_obj.__dict__['stu_age'] = 18
stu1_obj.stu_gender = '
male'#
stu1_obj.__dict__['stu_gender'] = 'male'
print(stu1_obj.__dict__)
這樣給物件進行動態的賦值還是過於複雜, 並且從類的定義中知道類是一類具有相同屬性和方法的集合, 如果這樣動態的進行新增屬性的話, 不符合類的定義, 需要將物件的相同屬性定義在類中, 可以使用類的__init__方法
classstudent(object):
def__init__
(self, name, age, gender):
self.name =name
self.age =age
self.gender = gender
這時候, 通過類例項化物件的操作為:
stu1_obj = student('featherwit
', 18, '
male
') #
student.__init__(空物件, 'featherwit', 18, 'male')
例項化的過程總共發生了三件事:
1. 先產生了乙個空物件
2. 會自動呼叫類中的__init__方法, 然後將空物件以及呼叫類時括號內傳入的引數一同傳給__init__方法
3. 返回初始化後的物件
classstudent(object):
#空物件, featherwit, 18, male
def__init__
(self, name, age, gender):
self.name = name #
空物件.name = featherwit
self.age = age #
空物件.age = 18
self.gender = gender #
空物件.gender = male
stu1_obj = student('
featherwit
', 18, '
male
') #
student.__init__(空物件, 'featherwit', 18, 'male')
並且, 注意到__init__方法是沒有返回值的, 沒有返回值即返回的為none, 如果__init__返回的是其他的非空物件, 則會報錯。
1. __init__方法會在呼叫類時自動觸發執行, 用來為物件初始化自己獨有的資料
2. __init__內應該存放的是為了物件初始化屬性的功能, 但是也是可以存放任意其他**的, 想要在類呼叫時就立即執行的**都可以放在__init__方法內
3. __init__方法必須返回none
Python學習 物件導向 init
init 方法 class phone 魔術方法之一 名字 def init self print init phone類裡面的方法 call defcall self print price phone1 phone 輸出 init 底層實現流程 1.phone1 phone 利用類建立物件,讀到...
物件導向的程式設計之 init
在python的類中有很多方法的名字有特殊的重要意義。現在我們將學習 init 方法的意義。init 方法在類的乙個物件被建立時,馬上執行。這個方法可以用來對你的物件做一些你希望的 初始化 注意,這個名稱的開始和結尾都是雙下劃線。例如 usr bin python filename class in...
027 Python物件導向的 init
init 魔術方法 構造方法 觸發時機 例項化物件,初始化的時候觸發 功能 為物件新增成員 引數 引數不固定,至少乙個self引數 返回值 無 基本用法,至少含有乙個引數 class myclass def init self self.name chris 例項化物件 obj myclass pr...