Python 自学 day07 对象,类,子类对父类函数的复写, 注释,封装,继承,多态,

1.对象

1.1 使用对象组织数据 (calss)



 2. 类的定义与使用


2.1 成员方法的定义语法


2.2 样例代码

class student:
    name = None,
    sex = None

    def student_add(self,name1,sex1):
        self.name = name1
        self.sex = sex1

    def student_print(self):
        print(f"name={self.name}\nsex={self.sex}")

    def student_dd(self):
        print(f"ssssss")

stu = student()
stu.student_add(1,2)
stu.student_print()
stu.student_dd()

 


 2.3总结



 3. 构造方法  __init__()   (类的构造)

3.1 构造方法的定义


 3.2 代码样例

class student:
    name = None,
    sex = None

    def __init__(self,name1,sex1):
        self.name = name1
        self.sex = sex1

    def student_print(self):
        print(f"name={self.name}\nsex={self.sex}")

    def student_dd(self):
        print(f"ssssss")

stu = student(1,"男")
stu.student_print()
stu.student_dd()

 


 3.3 总结



4. 类的 魔术方法   (类的运算符号重载)

4.1 魔术方法的定义


4.2  样例代码

注意: 首先 一旦写了  魔术方法,在类外的使用是 它对应的运算都可以使用。

注意:__str__ 输出的是字符串, 不写他,print 输出的是 变量的地址.

class student:
    name = None,
    sex = None

    def __init__(self,name1,sex1):
        self.name = name1
        self.sex = sex1

    def __str__(self):
        return f"name={self.name}\nsex={self.sex}"

    def __lt__(self,other):  #小于号运算 , student 变量直接的运算
        return  self.name < other.name
    
    def __le__(self,other): #小于等于, student 变量之间的运算
        return self.name <= other.name
    
    def __eq__(self,other): # == 符号的运算
        return self.name == other.name
  
stu1 = student(1,"男")
stu2 = student(2,"女")
print(stu1) # 假如没有 写 def __str__ 返回的是 这个变量的地址,写了就是返回你写的东西
print(f"stu1<stu2的结果是{stu1<stu2}")  
print(f"stu1>stu2的结果是{stu1>stu2}") # 从结果可以 得出 只有写了对应符号的 魔术方法就可以使用对应的运算 (而不是单一的)
print(f"stu1<=stu2的结果是{stu1<=stu2}") 
print(f"stu1>=stu2的结果是{stu1>=stu2}") 
print(f"stu1==stu2的结果是{stu1==stu2}") 


4.3 总结



5.   面对对象的三大特性

5.1 封装

5.2 继承

5.3 多态

5.4  面对对象编程的定义

答:面对对象编程是许多编程语言都支持的一种编程思想,简单理解是:基于模板(类)去创建实体(对象),使用对象完成功能开发。



6. 封装

6.1 私有成员的定义  


6.2 样例代码

class student:
    __name = None, #私有成员     私有函数都不可以让类外的变量调用
    sex = None

    def __init__(self,name1,sex1):
        self.__name =name1
        self.sex=sex1
        
    def mm(self):
        print(f"name={self.__name}")
        print(f"sex={self.sex}")

stu = student(1,2)
print(stu.sex)  
stu.mm()


7.继承

7.1 继承的定义


7.2 多继承


7.3 多继承注意事项

 


 7.4 Pass 的用法

参考链接:Python pass 语句 | 菜鸟教程 (runoob.com)


 7.5 子类和父类同名的变量复写

子类和父类同名的变量, 想改变 变量的值,就使用复写。


 7.6 调用父类同名成员


7. 7总结



8. 变量的类型注解

8.1 基础语法 (基本变量的注解)


8.2  容器的变量注解


 8.3 总结



9. 函数和方法类型注解

9.1 函数(方法)的类型注解--形参注解


9.2 返回值注解

 


9.3 样例代码

#对形参进行类型注解
def add(x: int,y: int):
    return x + y
#对返回值进行类型注解
def func(data: list) -> list:
    return data


 10. Union 联合类型注解

10.1 Union类型的含义

答: Union 类型是  一个列表有两种及以上 不同的元素。(元素是无序的)

比如说  list1 = [1,2,"list"}


10.2  Union 联合类型注解的使用 (基础容器上的使用)


 10.3 Union 联合类型注解的使用 (函数上的使用) 


 10.4 总结



11.  多态

11.1 多态的定义


11.2  样例代码


class Animal:  #创建对象类
    def speak(self):
        pass  #跳过, 假如不写就会报错

class Dog(Animal): #创建Dog 类
    def speak(self):
        print("汪汪")

class Cat(Animal):  #创建 Cat 类
    def speak(self):
        print("喵喵")

#创建多态函数
def make_noise(x : Animal):
    x.speak()

dog = Dog()
cat = Cat()
make_noise(dog)
make_noise(cat)

 



11.3 总结

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值