[Python] class __init__(self) 基本概念
Published in
5 min readJun 22, 2019
- 需宣告時給予初始化值
class Student:
def __init__(self, id, name):
self.id = id
self.name = name
if __name__ == '__main__':
s = Student(1, 'george')
print(s.id, s.name)
2. 直接賦予值
class Student:
def __init__(self):
self.id = 2
self.name = 'george'
self.sex = 'boy'
if __name__ == '__main__':
s = Student()
s2 = Student()
print(s.id, s.name, s.sex)
print(s2.id, s2.name, s2.sex)
3. (常見使用方式) 如果有填寫就給予初始值,若無,則賦予值。
class Student:
def __init__(self, id=1, name='george', sex='boy'):
self.id = id
self.name = name
self.sex = sex
if __name__ == '__main__':
s = Student(1, 'Peter')
s2 = Student(2, 'kate', 'girl')
print(s.id, s.name, s.sex)
print(s2.id, s2.name, s2.sex)
4. (接續3) 也可使用空值後,後續再添加屬性。
class Student:
def __init__(self, id=1, name='george', sex='boy'):
self.id = id
self.name = name
self.sex = sex
self.score = {}
if __name__ == '__main__':
s = Student(1, 'Peter')
s2 = Student(2, 'kate', 'girl')
s.height = 160
s.weight = 60
s.score['english'] = 90
s.score['music'] = 85
print(s.id, s.name, s.sex, s.score)
print(s2.id, s2.name, s2.sex, s2.score)
5. 其他? (可將屬性不放在__init__()裡面,或是之後再自行增加屬性也可)
class Student:
height = 180
weight = 79
def __init__(self, id=1, name='george', sex='boy'):
self.id = id
self.name = name
self.sex = sex
if __name__ == '__main__':
s = Student(1, 'Peter')
s2 = Student(2, 'kate', 'girl')
s.height = 160
s.weight = 60
print(s.id, s.name, s.sex, s.height, s.weight)
print(s2.id, s2.name, s2.sex, s2.height, s2.weight)
如果屬性不放在__init__()裡面,且函數又要使用屬性時呢?
class Student:
height = 1.78
weight = 80
def __init__(self, id=1, name='george', sex='boy'):
self.id = id
self.name = name
self.sex = sex
self.score = {}
def cal_BMI(self, height, weight):
bmi = weight / pow(height, 2)
return bmi
if __name__ == '__main__':
s = Student(1, 'Peter')
s2 = Student(2, 'kate', 'girl')
s.height = 1.60
s.weight = 60
s.score['english'] = 90
s.score['music'] = 85
bmi = s.cal_BMI(s.height, s.weight)
print(s.id, s.name, s.sex, s.score, bmi)
print(s2.id, s2.name, s2.sex, s2.score)
參考資料:
定義類別
在Python中要定義類別非常的簡單,例如你可以定義一個帳戶(Account)類別: class Account: passdef deposit(acct, am...
openhome.cc
如果你覺得文章很棒或有幫助到您,不妨幫我點個拍手吧! 謝謝…