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 )
posted @ 2020-08-16 19:57  wuang123  阅读(189)  评论(0编辑  收藏  举报