zoukankan      html  css  js  c++  java
  • 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:大创PythonLibsite-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 )
  • 相关阅读:
    HDU 1098 Ignatius's puzzle 也不大懂
    HDU 1099 Lottery
    图算法-Prime
    并查集
    CSS笔记2
    css笔记1
    HDU 5019 Revenge of GCD
    POJ 2255 Tree Recovery
    判断两条线段是否相交
    PAT 数列求和-加强版   (20分)(简单模拟)
  • 原文地址:https://www.cnblogs.com/wuang123/p/13513919.html
Copyright © 2011-2022 走看看