物件.屬性
物件.變數
來直接定義(新建),不需要在類別內事先定義,因為物件屬於實體,因此也可以稱為 instance attribute(實體屬性)class ClassName:
# code
# 相關的變數或函式
a = ClassName()
b = ClassName()
# 利用類別,建立 a 和 b 2 個物件
a.name = "a"
# a 物件建立一個 name 變數
b.name = "b"
# b 物件建立的 name 變數跟 a 不同
__init__
__init__
這個 method,可以在每次使用類別時,自動初始化建立相關的變數,而不用每次都需要再一一建立__init__
__init__
內至少要有一個參數,名稱慣例是取為 self,因為它就是目前的物件
,
隔開參數=預設值
class ClassName:
# 建構式
def __init__(self):
self.name = "name"
a = ClassName()
# 會自動初始化 __init__ 的變數
# 此時傳入 self 參數的就是 a 物件
# self.name 就像 a.name
print(a.name)
# name
# 預設建立變數 name = "name"
a.name = "a"
print(a.name)
# a
# name 已修改為新的值
帶參數
class ClassName:
def __init__(self, n="name"):
self.name = n
# self.name 為物件變數
# n 為函式參數
a = ClassName()
# 建立時使用預設值
b = ClassName("b")
# 建立時帶入參數 n 的值
print(a.name)
# name
print(b.name)
# b
def method_name():
建立,以 物件.method_name()
的方式使用,
隔開class ClassName:
def __init__(self, n):
self.name = n
def print_name(self):
print(self.name)
a = ClassName("a")
a.print_name()
# a
帶參數
class ClassName:
def __init__(self, n):
self.name = n
def print_name(self, h):
print(f"{h}, {self.name}")
a = ClassName("a")
a.print_name("hi")
# hi, a
希望對類別能有個基本認識,會再持續介紹