面向对象p111-p126自学PYTHON

  1. 初识对象
  2. 成员方法
  3. 类和对象
  4. 构造方法
  5. 其它内置方法
  6. 封装
  7. 继承
  8. 类型注解
  9. 多态
  10. 综合案例

初识对象

理解使用对象完成数据组织的思路

设计表格,称之为:设计类(class)
打印表格,称之为:创建对象
填写表格,称之为:对象属性赋值

"""
演示面向对象
"""

#1.设计一个类(类比生活中:设计一张登记表)
class Student:
    name=None
    gender=None
    nation=None
    native=None
    age=None
#2.创建一个对象(类比生活中:打印一张登记表)
stu_1=Student()
#.对象属性进行赋值(类比生活中:填写表单)
stu_1.name="lkx"
stu_1.gender="男"
stu_1.nation="中国"
stu_1.native="福建省"
stu_1.age=18
#4.获取对象中记录的信息
print(stu_1.name)
print(stu_1.gender)
print(stu_1.nation)
print(stu_1.native)
print(stu_1.age)



成员方法

掌握类的定义和使用语法

class是关键字,表示要定义类了

类的属性,即定义在类中的变量(成员变量)

类的行为,即定义在类中的函数(成员方法)

类中定义的属性(变量),我们称之为:成员变量

类中定义的行为(函数),我们称之为:成员方法


掌握成员方法的使用

可以看到,在方法定义的参数列表中,有一个:self关键字self关键字是成员方法定义的时候,必须填写的。
它用来表示类对象自身的意思
当我们使用类对象调用方法的是,self会自动被python传入在方法内部,想要访问类的成员变量,必须使用self
掌握self关键字的作用

成员属性分为:成员变量和成员方法(函数)

想要访问成员属性必须使用Self,外部传可以直接使用(msg)


类和对象、

掌握使用类描述现实世界事物的思想


掌握类和对象的关系2.

类是程序中的“设计图纸
对象是基于图纸生产的具体实体
理解什么是面向对象3.

"""
类的操作和对象的关系
"""
#设计一个闹钟类
class naozhong:
    id=None
    price=None

    def xingdong(self):
        import winsound
        winsound.Beep(2000,3000)
#构建2个闹钟对象并让其工作
naozhong1=naozhong()
naozhong1.id="0011"
naozhong1.price="1222"
print(f"闹钟的ID是:{naozhong1.id},价格是{naozhong1.price}")
naozhong1.xingdong()

面向对象编程就是,使用对象进行编程即,设计类,基于类创建对象,并使用对象来完成具体的工作
构造方法

Python类可以使用:可以实现:
__init__ ()方法,称之为构造方法。
在创建类对象(构造类)的时候,会自动执行
在创建类对象(构造类)的时候,将传入参数自动传递给 init 方法使用

"""
演示构造对象
"""
#演示使用构造方法对成员变量进行赋值
class test:
    name=None
    age=None
    tel=None
# 构造方法的名称:
    def __init__(self,name,age,tel):
        self.name=name
        self.age=age
        self.tel=tel
        print(f"test创建了一个类对象")
test1=test("lkx",12,"111111")
print(test1.name)
print(test1.age)
print(test1.tel)

注意事项 :
构造方法不要忘记self关键字
在方法内使用成员变量需要使用self
其它内置方法

上文学习的 __init__ 构造方法,是Python类内置的方法之一这些内置的类方法,各自有各自特殊的功能,这些内置方法我们称之为:魔术方法

掌握几种常用的类内置方法:

我们可以通过 __str__ 方法,控制类转换为字符串的行为

方法名__str__

返回值:字符串

内容:自行定义

__lt__lt_小于符号比较方法

方法名传入参数:other,

另一个类对象返 回 值:True 或 False

内容:自行定义

魔术方法:__ le__ 可用于:<=、>=两种比较运算符上。

方法名:le_传入参数:other,

另一个类对象返 回 值:True 或 False

内容:自行定义

eq_,比较运算符实现方法

方法名__eq__传入参数:other,另一个类对象

返 回 值:True 或 False

内容:自行定义

"""
演示魔术方法
"""
class test:
    def __init__(self,name,age):
        self.name=name
        self.age=age

#-_str__魔术方法
    def __str__(self):
        return f"test的类对象,name:{self.name},age:{self.age}"
#__lt__魔术方法
    def __lt__(self, other):
        return  self.age<other.age
#__le__魔术方法
    def __le__(self, other):
        return  self.age<=other.age
#__eq__魔术方法
    def __eq__(self, other):
        return  self.age==other.age
test1=test("lkx",666)
test2=test("kx",366)
print(test1<test2)
print(test1>test2)
print(test1<=test2)
print(test1>=test2)
print(test1==test2)
print(test1==test2)

print(test1)
print(str(test1))




封装

理解封装的概念:把现实中的事物封装成程        序语言中的类
掌握私有成员的使用

类中提供了私有成员的形式来支持。
私有成员变量
私有成员方法

在类中提供仅供内部使用的属性和方法
而不对外开放(类对象无法使用)

定义私有成员的方式非常简单,只需要私有成员变量:变量名以开头(2个下划线)私有成员方法:方法名以 开头(2个下划线)即可完成私有成员的设置

"""
演示私有成员对象显示
"""
#定义一个类,内含私有成员变量和私有成员方法
class phone:
    __current_voltage=None

    def __keep_single_core(self):
        print("CPU 单核")


    def by_5g(self):
        if self.__current_voltage >= 1:
            print("开启")
        else:
            self.__keep_single_core()
            print("电量不足")
phone1=phone()
phone1.by_5g()

报错了 ,简单看下简单逻辑


继承

继承的基础语法

理解继承的概念:在老的形式上进行修改

继承分为:单继承和多继承
使用如图语法,可以完成类的单继承。继承表示:将从父类那里继承(复制)来成员变量和成员方法(不含私有)

Python的类之间也支持多继承,即一个类,可以继承多个父类

 多个父类中,如果有同名的成员,那么默认以继承顺序(从左到右)为优先级。即:先继承的保留,后继承的被覆盖

掌握继承的使用方式

"""
演示继承
"""


# 演示单继承
class phone:
    id = None
    tel = "1111"

    def calw(self):
        print("4g通话")


# class phone2024(phone):
#     face_id = "111"
#
#     def by_5g(self):
#         print("新功能")
# 
#
# phone = phone2024()
# print(phone.tel)
# phone.by_5g()
# phone.calw()
# phone.face_id


# 演示多继承
class nfc_a:
    NFc_aa = "第五代"
    teet = "aaa"

    def read(self):
        print("读卡")

    def write(self):
        print("写卡")


class blue:
    blueaa = "aa"
    tooth = 22

    def blue(self):
        print("蓝牙")

    def typeaaa(self):
        print("开启")


class myphone(phone, nfc_a, blue):
    pass


phone = myphone()
phone.blue()
phone.write()
# 演示多继承下,父类成员名一致的场景


掌握pass关键字的作用:补全语法


复写和使用父类成员

掌握复写父类成员的语法

子类继承父类的成员属性和成员方法后,如果对其“不满意”,那么可以进行复写即:在子类中重新定义同名的属性或方法即可。


掌握如何在子类中调用父类成员

一旦复写父类成员,那么类对象调用成员的时候,就会调用复写后的新成员如果需要使用被复写的父类的成员,需要特殊的调用方式:

"""
演示复写父类
"""
class phone:
    id = None
    tel = "1111"

    def calw(self):
        print("4g通话")

#定义子类,复写父类成员
class myPhone(phone):
    id="lkx"
    tel = "777"
    def calw(self):
        print("5g通话")
phone=myPhone()
phone.calw()
print(phone.id)
#在子类中,调用父类成员


类型注解

变量的类型注解

理解为什么使用类型注解

Python在3.5版本的时候引入了类型注解,以方便静态类型检查工具,IDE等第三方工具。
类型注解:在代码中涉及数据交互的地方,提供数据类型的注解(显式的说明)。

帮助第三方IDE工具(如PyCharm)对代码进行类型推断,协助做代码提示帮助开发者自身对变量进行类型注释


掌握变量的类型注解语法

类型注释的语法:

自动导包:包名字+ ALT+回车

什么时候要注解:一般,无法直接看出变量类型之时会 添加变量的类型注解


函数(方法)的类型注解

掌握为函数(方法)形参进行类型注解



掌握为函数(方法)返回值进行类型注解


Union类型

理解Union类型

首先导包

语法格式Union【类型,。。。。类型】


多态

理解多态的概念

多态常作用在继承关系上.

以父类做定义声明
以子类做实际工作
用以获得同一行为,不同状态

多态,指的是:多种状态,即完成某个行为时,使用不同的对象会得到不同的状态。
理解抽象类(接口)的编程思想

同样的行为(函数),传入不同的对象,得到不同的状态

抽象类:含有抽象方法的类称之为抽象类

抽象方法:方法体是空实现的(pass)称之为抽象方法

3.抽象类的作用
多用于做顶层设计(设计标准),以便子类做具体实现。也是对子类的一种软性约束,要求子类必须复写(实现)父类的一些方法


综合案例

使用面向对象思想完成数据读取和处理

基于面向对象思想重新认知第三方库使用(PyEcharts)

太累了后面补了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值