xia的小窩

一起來coding和碼字吧

0%

pyclass-物件導向

python使用class關鍵字定義一個類別

1
2
3
class 類別:
pass(主體區塊)
# 在主體區塊內定義的函式稱為方法(method)

定義類別後,可以使用……

1
2
3
test = 類別()
# 可以呼叫類別(),當然也可以利用類別建立多個物件
test1 = 類別()

請注意,定義類別時前面不需要小括號

物件變數與__init__特殊method

1
物件名.變數名 = 變數值
  • 我們先來定義一個class
1
2
3
4
5
6
7
8
9
10
11
class cir:
pass

my_cir = cir()
my_cir.rad = 5
print(my_cir.rad * 10)
# 50

#cir().rad = 5
#print(cir().rad * 10)
# 下方的出了問題,記得不要這樣寫就好

物件.xxx,在點後的都可以稱為該物件的屬性

  • 關於__init__的初始化
1
2
3
4
5
6
7
8
9
10
11
12
class cir:
def __init__(self):
self.rad = "red"

test = cir()
print(test.rad)
# red

test1 = cir()
test1.rad = "black"
print(test.rad)
# red

這邊告訴我們,在物件建立後,若沒有傳遞,更改變數值是無法更動的

物件方法(method)

  • 方法次定義在類別內的函式
1
2
3
4
5
6
7
8
class cir:
def __init__(self, rad):
self.rad = rad
def web(self):
return self.rad * self.rad

c = cir(8)
print(c.web())

自定義變數數值

1
2
3
# ...
def __init__(self, rad = "black"):
# ...

類別變數

1
2
3
4
5
6
7
# ...
num = 55
def __init__(self, rad):
self.rad = rad
def web(self):
return self.rad * self.rad * cir.num
# ...

其實不需要想太難,注意一下變數的位置在哪裡就好了。
注意類別與物件變數的互交作用