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 )