类:面向对象


1、创建类
格式:

class 类名:


类属性
类方法

注意,无论是属性还是方法,对于类来说,他们都不是必需的,可以有也可以没有。另外,Python类中属性和方法所在的位置是任意的,
即它们之间并没有固定的前后次序

创建类对象的语法: 对象 = 类名称()

成员方法的定义语法:

def 方法名(self, 形参):
      方法体
self关键字是成员方法定义时,必须填写的。
它用来表示类对象自身的意思。
在方法内部,想要访问类的成员变量,必须使用self (self.成员变量)


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


class Student:
    name = None  # 这三个就可以省掉,有了构造函数
    age = None
    tel = None

    def __init__(self,name,age,tel):
        self.name = name
        self.age = age
        self.tel = tel

stu = Student("sdj",'32','123456')  # 直接传入参数


3、魔术方法

内置的类方法,各有各自特殊功能,这些内置方法我们称之为:魔术方法
比如
1)__str__字符串方法:控制类转化为字符串行为。返回值是字符串。
2)__lt__小于符号比较:直接两个对象比较是不行的,但是在类中实现__lt__方法,课同时完成小于、大于符号的比较。

def __lt__(self,other):
    return self.age < other.age
传入参数:other、另一个类对象;返回值:TrueFalse

3)__le__用于<=>=两个比较运算符上

4)__eq__比较是否相等(使用方法同上)

5)还有很多其他的魔术方法......

4、封装
类中提供了私有成员的形式来支持
 私有成员:(类对象不能访问、但可以被类中其他成员使用)
  私有成员变量:变量名以__开头(2个下划线)  只有内部的成员才能使用,外部对象不行
  私有成员方法:方法名以__开头(2个下划线)

例子:
class Aphone:
    __is__5g_enable = False

    def __check_5g(self):
        if self.__is__5g_enable == True:
            print("5g开启")
        else:
            print("5g关闭,使用4g网络")

    def call_by_5g(self):
        self.__check_5g()
        print("正在通话中")

phone = Aphone()
phone.call_by_5g() # 只能访问这个公开方法,不能直接访问私有成员方法


5、继承
class 类名(父类1,父类2....):

    pass  # 占位的,保证类定义的完整性
    类内容体


如果父类同名了,左边优先级更高。(先先来,先优先级高)


复写:子类继承父类的成员属性和成员方法后,如果对其不满意,可以在子类复写,即,在子类中重新定义同名的属性或方法。(与C + +类似)

调用父类的同名成员:

法一:

成员变量:父类名.成员变量

成员方法:父类名.成员函数(self) # self必须加

法二:

使用super()
调用父类成员

成员变量:super().成员变量

成员方法:super().成员方法()  # 这里不用写self

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

抽象类(接口):含有抽象方法的类

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

如:定义一个函数(方法),通过类型注解声明需要的父类对象,实际传入子类对象
进行工作,从而获得不同的工作状态
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值