1. 程式人生 > 實用技巧 >8.16第六週學習記錄

8.16第六週學習記錄

8.16第六週學習記錄

這周電腦出了點問題,進度有點慢...

本週學習內容:

1.建立用於計算的屬性
2.建立類的成員並訪問
3.為屬性新增保護機制
4.繼承的基本語法
5.建立模組、引用模組
6.為類、物件繫結方法
7.編寫複數相加程式

程式碼部分

建立用於計算的屬性

class Rect:
def init(self,width,height): #構造方法
self.width = width #width
self.height = height
@property
def area(self):
return self.width*self.height #計算面積

rect = Rect(800,600) #建立類的例項
print("面積為: ",rect.area) #輸出面積

Rect.area = 100
print("面積為: ",rect.area)

為屬性新增保護機制

class TVshow:
list_film = ["戰狼2","紅海行動",'盜夢空間','泰坦尼克號']
def init(self,show):
self.__show = show
@property
def show(self):
return self.__show #返回私有屬性,這裡的show屬性就是一個只讀屬性
@show.setter #讓屬性可以修改。
def show(self,value):
if value in TVshow.list_film:
self.__show = "您選擇了:《"+value+"》"
else:
self.__show = "您選擇的電影不存在!"
tvshow = TVshow("戰狼2")
print("正在播放:",tvshow.show)
print("您可以從",TVshow.list_film,"中選擇")
tvshow.show = "紅海行動"
print(tvshow.show)

class Fruit:
color = "Green" #類屬性
def harvest(self,color):
print(color) #輸出形式引數color
print("......已經收穫......")
print("水果原來是:",Fruit.color) #輸出類屬性
class Apple(Fruit):
color = "Red"
def init(self):
print("我am蘋果")

class Orange(Fruit):
color = "Red"
def init

(self):
print("我am橘子")

兩個子類一個基類

apple=Apple() #建立蘋果類的例項
apple.harvest(apple.color) #呼叫基類的harvest方法
orange=Orange()
orange.harvest(orange.color) #呼叫基類的harvest方法

建立模組、引用模組

創:
def add(a,b):
return round(a+b,1)#四捨五入保留一位
引用:
import sys
sys.path.append('E:/大創/Python/Python程式') #若匯入的模組不在同一個資料夾,新增一個路徑
import calculate #匯入模組
a = 0.1
b = 0.2
print(a+b)
print(calculate.add(a,b))

還可新增.pth檔案,路徑檔案(E:\大創\Python\Lib\site-packages)

填了這個.pth 就可以具有那個.append的路徑了

直接給物件繫結新方法 利用types庫中的 MethodType方法

from types import MethodType
class Student:
pass
def SetName(self,name):
self.name = name
def SetNumber(self,number):
self.no = number

if name == 'main':
stu1 = Student()
stu2 = Student()
stu1.SetName = MethodType(SetName,stu1) #SetName就作為stu1中的一個方法了
#Student.SetNumber=SetNumber #為Student類繫結方法,但是晚了now
stu1.SetName("wyn")
print(stu1.name)
stu1.SetNumber = MethodType(SetNumber,stu1)#SetNumber就作為stu1中的一個方法了
stu1.SetNumber("20183101")
print(stu1.no)

類方法(沒搞成功),複數相加

class Complex: #複數類
def init(self,real,image):
self.real = real
self.image = image

def add(c1,c2):

c = Complex(0,0)

c.real = c1.real+c2.real

c.image = c1.image+c2.image

return c

if name == 'main':
c1 = Complex(1.1,2.2)
c2 = Complex(3.3,4.4)

print(c1.real,c1.image )

c = Complex(0,0)
c.real=c1.real+c2.real
c.image=c1.image+c2.image
print(c.real,c.image )