python--6作业|笔记( 继python--2class)__init__,__str__ ,封装__ 重载, main继承 |练习,run,#面向对象封装摆放家具|未完end.......

学习目标:

  • 作业

  • # #问题1:

    # 创建一个名为Shape形状的父类,具有一个area方法。

    # 然后创建一个Rectangle长方形子类,

    # 继承自Shape,并具有额外的width宽度和height高度属性。

    # 该子类还应该具有一个perimeter周长方法来计算矩形的周长。

  • #
  • # #问题2:

    # 编写程序,创建基类Vehicle,

    # 其成员包括实例属性brand(品牌)和color(颜色),

    # 实例方法showInfo()用来输出实例属性brand和color的值;

    # 创建派生类Car,继承Vehicle类,新增实例属性seat(座位数),

    # 重写基类的实例方法showInfo ()输出所有实例属性的值。

    # 利用__init__()构造方法完成Vehicle和Car类的对象初始化工作,并编写测试代码

  • 笔记:

  •  ( 继python--2class)__init__,__str__ ,封装__ 重载, main继承

  • 练习:

  • run,#面向对象封装摆放家具|未完end.......


学习内容:

  1. 作业

  2. # #问题1:

    # 创建一个名为Shape形状的父类,具有一个area方法。

    # 然后创建一个Rectangle长方形子类,

    # 继承自Shape,并具有额外的width宽度和height高度属性。

    # 该子类还应该具有一个perimeter周长方法来计算矩形的周长。

  3. #
  4. # #问题2:

    # 编写程序,创建基类Vehicle,

    # 其成员包括实例属性brand(品牌)和color(颜色),

    # 实例方法showInfo()用来输出实例属性brand和color的值;

    # 创建派生类Car,继承Vehicle类,新增实例属性seat(座位数),

    # 重写基类的实例方法showInfo ()输出所有实例属性的值。

    # 利用__init__()构造方法完成Vehicle和Car类的对象初始化工作,并编写测试代码

  5. 笔记:

  6.  ( 继python--2class)__init__,__str__ ,封装__ 重载, main继承

  7. 练习:

  8. run,#面向对象封装摆放家具|未完end.......

目录

学习目标:

作业

# #问题1:

# 创建一个名为Shape形状的父类,具有一个area方法。

# 然后创建一个Rectangle长方形子类,

# 继承自Shape,并具有额外的width宽度和height高度属性。

# 该子类还应该具有一个perimeter周长方法来计算矩形的周长。

# #问题2:

# 编写程序,创建基类Vehicle,

# 其成员包括实例属性brand(品牌)和color(颜色),

# 实例方法showInfo()用来输出实例属性brand和color的值;

# 创建派生类Car,继承Vehicle类,新增实例属性seat(座位数),

# 重写基类的实例方法showInfo ()输出所有实例属性的值。

# 利用__init__()构造方法完成Vehicle和Car类的对象初始化工作,并编写测试代码

笔记:

 ( 继python--2class)__init__,__str__ ,封装__ 重载, main继承

练习:

run,#面向对象封装摆放家具|未完end.......

学习内容:

作业

# #问题1:

# 创建一个名为Shape形状的父类,具有一个area方法。

# 然后创建一个Rectangle长方形子类,

# 继承自Shape,并具有额外的width宽度和height高度属性。

# 该子类还应该具有一个perimeter周长方法来计算矩形的周长。

# #问题2:

# 编写程序,创建基类Vehicle,

# 其成员包括实例属性brand(品牌)和color(颜色),

# 实例方法showInfo()用来输出实例属性brand和color的值;

# 创建派生类Car,继承Vehicle类,新增实例属性seat(座位数),

# 重写基类的实例方法showInfo ()输出所有实例属性的值。

# 利用__init__()构造方法完成Vehicle和Car类的对象初始化工作,并编写测试代码

笔记:

 ( 继python--2class)__init__,__str__ ,封装__ 重载, main继承

练习:

run,#面向对象封装摆放家具|未完end.......

作业

# #问题1:

# 创建一个名为Shape形状的父类,具有一个area方法。

# 然后创建一个Rectangle长方形子类,

# 继承自Shape,并具有额外的width宽度和height高度属性。

# 该子类还应该具有一个perimeter周长方法来计算矩形的周长。

# #问题2:

# 编写程序,创建基类Vehicle,

# 其成员包括实例属性brand(品牌)和color(颜色),

# 实例方法showInfo()用来输出实例属性brand和color的值;

# 创建派生类Car,继承Vehicle类,新增实例属性seat(座位数),

# 重写基类的实例方法showInfo ()输出所有实例属性的值。

# 利用__init__()构造方法完成Vehicle和Car类的对象初始化工作,并编写测试代码

笔记txt: 

 这个的class 

__init__

__str__ 

封装:__

 函数重载

 继承

 main

练习

1.run

2.#面向对象封装案例2——摆放家具

学习时间:

学习产出:


作业

# #问题1:

# 创建一个名为Shape形状的父类,具有一个area方法。

# 然后创建一个Rectangle长方形子类,

# 继承自Shape,并具有额外的width宽度和height高度属性。

# 该子类还应该具有一个perimeter周长方法来计算矩形的周长。

class Shape(object):
    def area(self):
        return "area面积"

class Rectangle(Shape):
    def __init__(self, width, height):
        self.width = width
        self.height = height

    def area(self):
        return self.width * self.height

    def perimeter(self):
        return 2 * (self.width + self.height)

# 示例用法
canfanxen = Rectangle(1, 2)
print(Shape.area(5))
print(canfanxen.area())      
print(canfanxen.perimeter()) 

>>>area面积
2
6

# #问题2:

# 编写程序,创建基类Vehicle,

# 其成员包括实例属性brand(品牌)和color(颜色),

# 实例方法showInfo()用来输出实例属性brand和color的值;

# 创建派生类Car,继承Vehicle类,新增实例属性seat(座位数),

# 重写基类的实例方法showInfo ()输出所有实例属性的值。

# 利用__init__()构造方法完成Vehicle和Car类的对象初始化工作,并编写测试代码

class Vehicle:
    def __init__(self, brand, color):
        self.brand = brand
        self.color = color

    def showInfo(self):
        print("Brand:", self.brand)
        print("Color:", self.color)


class Car(Vehicle):
    def __init__(self, brand, color, seat):
        super().__init__(brand, color)
        self.seat = seat

    def showInfo(self):
        super().showInfo()
        print("Seat:", self.seat)


# 测试
car = Car("yahooi", "bike", 6)
car.showInfo()

笔记txt: 

面向对象编程:
你   userid   passwd     def: 走    输入
atm   def  :  校验   取钱   存钱     id



类、对象
统计全校所有学生的信息:姓名、年龄、专业、id
person1 = {
username:"zhangsan",
age:21,
zhuanye:"jike",
id:110
}


person2 = {
username:"lisi",
age:22,
zhuanye:"jike",
id:120
}


类成员:属性
    方法:在类里面的函数

姓名、年龄、专业、id

python中创建类的方式:

类名称:采用大驼峰命名法进行区分   UserName
class 类名称(object[father1,,father2]):
    def __init__(self,uname,age):
        self.uname = uname
        self.age = age

    def __str__(self):
        return "xxx"




#实例化对象
对象名 = 类名(传参)


面向对象的特征:   封装、继承、多态
1、封装
a、类的成员全部封装在类中
b、为了安全考虑,有些属性和方法,不希望被随意访问。因此,大多数情况下,
往往要对对象的属性进行私有化,然后,提供公开的方法进行访问   get_   set_


python进行成员的私有化:  _ _属性名            _ _方法名
私有化的成员在class中可以被访问


_方法名、  _变量名  :表示不能被其他模块所引用的   from  模块名  import  *



property():


@property
@name.setter



函数重载:存在多个函数名相同的函数,但是参数个数或者参数类型不同,会使得在调用的时候,自动调用对应函数的现象


继承:
父类:被继承的一方   超类、基类
子类


子类不能继承父类的私有成员




方法重写:父类中的方法已经不能满足子类的需求,因此,在子类中,
重新定义一个与父类方法名相同的方法,我们把这种情况,叫做方法重写(方法覆盖)


python中的类的继承,是支持继承多个类的
class Son(Father,Mother):
    pass



如果Son类中,也存在__init__,那么一定要在代码的第一行手动的调用父类

 # super()  是一个指针,指向自己的父类 ,只用在类中

 python--2作业66,69,71,84;85;数据类型:int()float()TrueFalsestr()list()set()dict()tuple()class 

                                                                                            http://t.csdnimg.cn/R005I

 这个的class 

#############################################################################

__init__

def __init__(self,username,age,zhuanye,id):
        self.username = username
        self.age = age
        self.zhuanye = zhuanye
        self.id = id

__str__ 

__str__
class student(object):
      def __str__(self_1):
           return f"学生的姓名是{self_1.username},chong:{self_1.chong}"

####################################################################

class Person(object):
    def __init__(self,uname,age):
        self.uname = uname
        self.age = age

    def eat(self):
        print("吃饭了")


    def __str__(self):
        return f"该用户的用户名是:{self.uname},年龄是{self.age}"


obj1 = Person("zhangsan",33)
print(obj1)
》》》该用户的用户名是:zhangsan,年龄是33
否则
》》》<__main__.Person object at 0x000001E43589F710>



class Person(object):
    def __init__(self,uname,age):
        self.uname = uname
        self.age = age

    def eat(self):
        print("吃饭了")


    # def __str__(self):
    #     return f"该用户的用户名是:{self.uname},年龄是{self.age}"


obj1 = Person("zhangsan",33)
print(obj1)

封装:__

class Login(object):
    def __init__(self,username,passwd):
        self.username = username
        self.__passwd = passwd

    def get_passwd(self):
        return self.__passwd

    def set_passwd(self,newPasswd):
        self.__passwd = newPasswd
        return f"密码被更改为{self.__passwd}"

    def __test(self):
        print("55555555")
    def print_info(self):
        print(self.__passwd)
》》》100890
100890
55555555
###############################################################封装2.0
class Login(object):
    def __init__(self,username,passwd):
        self.username = username
        self.__passwd = passwd

    @property
    def passwd(self):
        return self.__passwd
    @passwd.setter
    def passwd(self,newpasswd):
        self.__passwd = newpasswd

    # 封装方式2
    # newpasswd = property(get_passwd,set_passwd)


if __name__ == '__main__':
    obj1 = Login("zhangsan", 123456)

    # print(obj1.newpasswd)  #相当于调用了get_passwd
    # obj1.newpasswd = "新添加的密码"   #相当于调用了set_passwd
    # print(obj1.newpasswd)

    print(obj1.passwd)
    obj1.passwd = "新添加的"
    print(obj1.passwd)
》》》》》》》》》》》》123456
新添加的

 函数重载

def test(a:int,b:float):
    print("111111")

def test():
    print("2222")



if __name__ == '__main__':
    test()
》》》》》》》》》》》》2222

 继承

class Father(object):
    def __init__(self,uname,age,money):
        self.uname = uname
        self.age = age
        self.money = money
        self.__qizi = "王大壮"
    def zhuanqian(self):
        print("我是父亲的eat方法……")
class Mother(object):
    def mother(self):
        print("我是mother类中定义的方法")
class Son(Father,Mother):
    # pass
    def __init__(self,hobby,age,uname):
        # super()  是一个指针,指向自己的父类
        super().__init__("zhangsan",61,"10000000000000000000")
        self.hobby = hobby
        self.uname = uname
        self.age = age

    def zhuanqian(self):
        print("更新过的赚钱的技巧")
    # def fzhuanqian(self):
    #     print(super().uname)
f = Father("zhangsan",61,10000000000)
f2 = Father
print(f.money)
son = Son("sing",21,"王二丫")
# print(son.uname)
print(son.age)
son.zhuanqian()
# print(son.money)
#print(son.eat())
# print(son.money)


# son.fzhuanqian()
son.mother()
》》》》》》》》10000000000
21
更新过的赚钱的技巧
我是mother类中定义的方法

 main

# 这是一个示例 Python 脚本。

# 按 Shift+F10 执行或将其替换为您的代码。
# 按 双击 Shift 在所有地方搜索类、文件、工具窗口、操作和设置。


def print_hi(name):
    # 在下面的代码行中使用断点来调试脚本。
    print(f'Hi, {name}')  # 按 Ctrl+F8 切换断点。


# 按装订区域中的绿色按钮以运行脚本。
if __name__ == '__main__':
    print_hi('PyCharm')

# 访问 https://www.jetbrains.com/help/pycharm/ 获取 PyCharm 帮助
》》》》》Hi, PyCharm

练习

1.run

class Person(object):
    def __init__(self,name,weight):
        self.name = name
        self.weight = weight


    # run
    def run(self):
        self.weight -= 0.5
        print(f"用户{self.name},跑步了")


    def eat(self):
        self.weight += 1
        print(f"用户{self.name},吃饭了")


    def print_info(self):
        print(f"用户{self.name}的体重现在是{self.weight}")



xiaoming = Person("xiaoming",75)

print(xiaoming.weight)
print(xiaoming.name)

xiaoming.run()
print(xiaoming.weight)

xiaoming.eat()
print(xiaoming.weight)


xiaoming.print_info()


xiaoli = Person("xiaoli",63)

2.#面向对象封装案例2——摆放家具

#
#面向对象封装案例2——摆放家具
class HouseItem:
    # 初始化方法:简化对象的创建
    def __init__(self, name, area):
        # self.属性 = 形参
        self.name = name
        self.area = area
 
    # 内置方法__str__(self):简化对象的输出
    def __str__(self):
        # 这个方法需要注意必须要返回一个字符串
        # .2f 表示在遇到小数的时候只保留2位小数
        return "[%s] 占地面积是%.2f 平方米" % (self.name, self.area)
 
 
class House():
    def __init__(self, house_type, area):
        self.house_type = house_type
        self.area = area
 
        # 剩余面积
        self.free_area = area  # 剩余面积初始值是总面积
 
        # 家具名称列表
        self.item_list = []  # 家具列表一开始是一个空列表
 
    def __str__(self):
 
        # python小技巧: Python能够自动的将一对括号内部的代码连接在一起不出错,因为代码过程所以这里用了小括号
        return ("户型:%s\n总面积:%.2f [剩余面积:%.2f]\n家具:%s"
                % (self.house_type, self.area,
                   self.free_area, self.item_list))
 
    # 添加家具方法
    def add_item(self, item):
 
        print("要添加%s" % item)
 
        # 1.判断家具的面积
        if item.area > self.free_area:
            print("%s 的面积太大了,无法添加" % item.name)
 
            return  # return关键字可以返回结果也可以不返回结果,下方代码不会被执行
 
        # 2. 将家具添加到家具列表中
        self.item_list.append(item.name)
 
        # 3. 计算剩余面积
        self.free_area -= item.area
 
 
# 1. 创建家具对象
bed = HouseItem("席梦思", 4)
chest = HouseItem("衣柜", 2.5)
table = HouseItem("餐桌", 2)
 
print(bed)
print(chest)
print(table)
 
 
# 2. 创建房子对象
house1 = House("两室一厅", 80)
 
# 调用添加方法,把家具都添加到新房子中
house1.add_item(bed)
house1.add_item(chest)
house1.add_item(table)
 
print(house1)


class HoustItem(object):
    def __init__(self,item_name,area):
        self.name = item_name
        self.area = area

    def __str__(self):
        return f"{self.name}的占地面积是{self.area}"


class House(object):
    def __init__(self,house_type,area):
        self.type = house_type
        self.area = area
        self.free_area =area
        self.item_list = []


    def add_item(self,item):
        # print(f"添加的家具是:{item.area}")
        if item.area > self.free_area:
            print("剩余空间不够了,放不下了")

        else:
            self.item_list.append(item.name)
            self.free_area -= item.area


    def __str__(self):
        return f"房子的户型是{self.type},房子的总面积是{self.area},房子的剩余面积是:{self.free_area},家具列表是{self.item_list}"

#########################################################################

if __name__ == '__main__':
    bed = HoustItem("席梦思",4)
    chest = HoustItem("衣柜",2.5)
    table = HoustItem("餐桌",2)

    house = House("三室一厅",21)

    house.add_item(bed)
    house.add_item(table)


    print(house)

    # print(bed)
    # print(chest)
    # print(table)

未完end.......


学习时间:

学习时间为不运动的时候,作者咕咕了是去运动(无氧运动和有氧运动都做最好)了,请饶恕。


学习产出:

画工

python--5--len()                                                                         http://t.csdnimg.cn/wLynX

python--4函数def,本质、值传递、引用传递、默认值参数、*参数名、**变量、lambda [参数]: 函数、偏函数、递归、递归练习                                            http://t.csdnimg.cn/h9x17

python---3--sort、lambdalen(list1)、sorted_numbers = sorted(numbers)、list.sort()

                                                                                              http://t.csdnimg.cn/WpVQK

python--2作业66,69,71,84;85;数据类型:int()float()TrueFalsestr()list()set()dict()tuple()class 

                                                                                            http://t.csdnimg.cn/R005I

python--1作业,注释、输入输出、运算符、运算结果、三目运算符、关系表达、多值交换、偶数、随机数、三目运算、if、elif、else、while、for、break、contince、pass                                                                                                   http://t.csdnimg.cn/0KDeU


  计算机网络第1章:计算机网络的概念、组成与功能;计算机网络的分类、标准化工作及相关组织

                                                                                                       http://t.csdnimg.cn/uZOAM

计算机网络第一章:性能指标:带宽、时延、时延带宽积、RTT、吞吐量、速率、信道利用率

                                                                                                                                                                                                                           http://t.csdnimg.cn/avNeb

计算机网络体系结构——PDU、SDU、PCI、协议、访问、接口、SAP

                                                                                                          http://t.csdnimg.cn/x3Uar

 计算机网络分层结构——OSI/ISO、TCP/IP                                                                                                                                                   http://t.csdnimg.cn/hLrqY

 1章选择                                                                                          http://t.csdnimg.cn/cnmdJ

2章选择、解答                                                                                http://t.csdnimg.cn/ONrER

   通信基本概念:数据、信号、码元、信源、信道、信宿、速率、波特、带宽                                                                                                        http://t.csdnimg.cn/TKnyM

 数据、信号、码元、信源、信道、信宿、速率、波特、带宽-通信基本概念

                                                                                                         http://t.csdnimg.cn/Kc2e3

HCIA——30奈奎斯特定理、香农定理                                              http://t.csdnimg.cn/Yqtch

HCIA——20应用层:C/S、P2P、peer                                                                                                                                                                                       http://t.csdnimg.cn/4i4Og

HCIA——21C/S、P2P、peer的选择     

                                                                                                                                                                                                                          http://t.csdnimg.cn/4a11f                                                                

 DNS层次域名空间、域名服务器、域名解析的原理                        http://t.csdnimg.cn/yeWd6

 HCIA——23DNS层次域名空间、域名服务器、域名解析的原理的选择、解答                                                                                                                              http://t.csdnimg.cn/RXPNV 

 HCIA——24FTP 的工作原理、功能、TFTP、控制连接、数据连接

                                                                                                                                                                                                                    http://t.csdnimg.cn/9TPlw

HCIA——25FTP 的工作原理、功能、TFTP、控制连接、数据连接的选择、解答 

                                                                                                    http://t.csdnimg.cn/8GkAU

HCIA——26E-mall、MIME、POP3、IMAP、电子邮件系统的组成结构、电子邮件的发送,接收过程、MIME 与SMTP 的关系                                                  http://t.csdnimg.cn/smTaR

HCIA——27E-mall、MIME;POP3、IMAP的选择,解答 http://t.csdnimg.cn/xnsXP

 HCIIA——28HTTP、万维网、HTML;万维网的工作过程;HTTP 的特点——无连接-TCP、无状态-Cookie、非持久连接-非流水线和流水线;HTTP 的报文结构                                                                                                      http://t.csdnimg.cn/cRcxY

  • 技术笔记 1遍
  • 有错误请指出,作者会及时改正

  • 14
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值