新手学习Python第九天-新手笔记 速学中

news/2024/9/18 20:25:44 标签: 学习, 笔记

现在是北京时间06:55,早上06:44到达实验室,开始学习。对,昨天陪室友考教师资格证了,溜溜达达一天很舒服,两周一次的放松感。这几天和未来几天的压力真的很大,有很多要去学习的,比如Carsim、simulink、ROS2、Python、算法的文章,要尽快啃完,加油!

一、继承

先复习一下前天的学习内容。

class Car:               定义一个Car的类
    def __init__(self,brand):    参数为brand
        self.brand=brand         固定操作赋值
    def start(self):            定义类方法
        print('汽车已启动')      显示

car=Car('梅赛德斯')       将Car类赋给car,可以任意调用
car.start()               调用类方法
print(car.brand)           调用参数brand

class Person(object):        #定义一个类引用父类object 不写里面的也可以
    def __init__(self,name,age):       定义参数
        self.name=name               
        self.age=age                  基础操作赋值
    def info(self):                   类方法
        print(self.name,self.age)      打印输出 
class Student(Person):            定义子类引用上面的父类 
    def __init__(self,name,age,stu_no):    定义里面的参数 
        super().__init__(name,age)        引用父类中的name与age 
        self.stu_no=stu_no                 基础操作赋值 
class Teacher(Person):                与上面相同操作 定义子类 
    def __init__(self,name,age,techofyear):       设置相应参数 
        super().__init__(name,age)           引用父类进行初始化
        self.techofyear=techofyear          基础操作赋值


stu=Student('张三',20,2023204027)         给student设置参数 
tea=Teacher('李四',40,10)                 给Teacher设置参数
stu.info()                               student的引用父类
tea.info()                               teacger的引用父类

这是属于单继承关系,还有多继承关系。

1.2多继承关系

class A(object):
    pass
class B(object):   A与B同时继承object
    pass
class C(A,B):     此处C先继承A,再继承B
    pass

1.3方法重写

子类重写后的方法中可以通过 super().xxx()调用父类中被重写的方法

xxx为父类中类方法的名字

但这样只有学号,我还想要其他信息没有怎么办?利用上述的办法重写结构

super().info()就可以调用父类中的类方法啦

class Person(object):
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def info(self):
        print(self.name,self.age)

class Student(Person):
    def __init__(self,name,age,stu_no):
        super().__init__(name,age)
        self.stu_no=stu_no
    def info(self):
        super().info()
        print(self.stu_no)
class Teacher(Person):
    def __init__(self,name,age,techofyear):
        super().__init__(name,age)
        self.techofyear=techofyear
    def info(self):
        super().info()
        print(self.techofyear)


stu=Student('张三',20,2023204027)
tea=Teacher('李四',40,10)
stu.info()
tea.info()

1.4 object类

1.4.1 是所有类里的父类

1.4.2 内置函数dir()可以查看指定对象所有属性

1.4.3 object有一个_str_()方法 

class Student:
    pass

stu=Student()
print(dir(stu))

举一个例子:

class Student:
    def __init__(self,name,age):
        self.name=name
        self.age=age
   def __str__(self):
        return ('我的名字是{0},年龄{1}岁'.format(self.name,self.age))  熟练掌握

stu=Student('张三',20)
print(dir(stu)) 
print(stu)    默认调用__str__()这样的方法 用于返回对象的描述

2.多态

class Animal:
    def eat(self):
        print('动物会吃啥腻') 
class Cat(Animal):
    def eat(self):
        print('猫咪吃鱼')
class Dog(Animal):
    def eat(self):
        print('狗吃骨头')

def fun(obj):    
    obj.eat()   这是一门动态语言学——python,不管你是什么类型,只要你存在这个行为,我就可以把你归为一类,去叫你。

3.特殊属性:

3.1 dir()

首先之前学的dir()可以查看该函数的特殊属性和方法

——————18:59——————

              下午打了羽毛球,打得很舒服,这次没有感觉累,学会了用羽毛球拍捡球,真的好玩,有好几次球速度那么快我都能接到,真的运动可以锻炼反应能力,刚洗完澡来到实验室,今天的月亮好圆,祝大家中秋节小长假快乐呀——

3.2  __dict__ 可以查看对象的属性和方法

在 Python 中,__dict__ 属性用于获取对象的字典,这个字典包含了对象的所有属性和方法。对于一个类的实例__dict__ 包含了实例的所有属性

class A:
    pass
class B:
    pass
class C:
    def __init__(self,name):
        self.name=name

x=C('Jack')
print(x.__dict__)

x是C的实例对象, 其中只有一个参数name,用__dict__查看到属性为name,对应的值为Jack

这样可能看不明白,那么我再写一个就清楚了。

class A:
    pass
class B:
    pass
class C:
    def __init__(self,name,age):
        self.name=name
        self.age=age

x=C('Jack',20)
print(x.__dict__)

这里的属性为键(key).

class A:
    pass
class B:
    pass
class C:
    def __init__(self,name,age):
        self.name=name
        self.age=age

x=C('Jack',20)   #x是C类型的一个实例对象
print(x.__dict__)   #实例对象的属性字典
print(x.__dict__)   #实例对象的属性字典
print(C.__dict__)
print(x.__class__)  #输出了对象所属的类
print(C.__bases__)  #C类的所有父亲类型的元素
print(C.__base__)   #输出C类最近的父类 (即基类)
print(C.__mro__)    #该类C类的层次结构
print(A.__subclasses__())  #该类A下的子类有哪些 (子类的列表)

还是刚才的显示该类下,子类的程序演示

总结创建子类,class 类别 (父类):

特殊属性:__dict__ :获得类对象或实例对象

                                 ——21:49回寝室——


http://www.niftyadmin.cn/n/5664471.html

相关文章

深入浅出:使用Retriever实现高效文档检索

引言 在数据驱动的现代社会,快速准确地检索信息变得至关重要。Retriever作为一种接口,能够根据无结构的查询返回相关文档,其应用十分广泛。本文将深入探讨Retrievers的工作原理、如何使用及其在实际应用中的挑战和解决方案。 主要内容 什么…

Java---网络编程

一.网络的基本概念 1.指令 二.网络模型 1.七层模型 七层模型,也称为OSI(Open System Interconnection)参考模型,是国际标准化组织(ISO)制 定 的一个用于计算机或通讯系统间互联的标准体系。它是一个七层…

哪些人群适合做旅游卡项目?首选这5类人群!

在旅游市场蓬勃发展的今天,旅游卡项目成为了一个充满潜力的创业选择。那么,哪些人群适合涉足这个领域呢?重点首选这5类人群: 一、自由职业者 自由职业者拥有灵活的工作时间安排,这是他们从事旅游卡项目的一大优势。他…

2024年适合培训服务企业的7款CRM盘点

培训服务行业在线索管理、客户管理、数据分析、项目管理、师资管理和课程管理等方面,使用CRM可以事半功倍,最重要的是,可以用数据说话,找到降本增效的方向。 下面对培训服务行业常用测CRM做个盘点,包括国内比较头部的…

配置环境-keil

配置keil -- 先将keil安装配置好,包括库 一、STM32 -- STM32是意法半导体(意大利)采用ARM公司设计的内核,设计一系列32位单片机芯片。 1、STM32开发的几种方式 2、STM32寄存器和库函数版本的工程创建 新建文件夹 复制相关文件…

C#使用Access数据库使用总结

话说这Access数据库确实是有点年代了,前面在深圳的一家放射医疗公司,数据库用的Access,后面在我的建议下,换成了SQLite。用SQLite多舒服,不用装Runtime,还可以用EF。Access得装Runtime,也用不了…

Linux网络——HTTP协议详解(1)

文章目录 HTTP协议URLHTTP报文请求报文响应报文 HTTP协议 HTTP可以说是当今应用最广泛的应用层协议之一,主要面向的是浏览器(客户端)和服务器之间通信的规定 HTTP协议的底层是TCP协议,我们先大概认识一下这个协议是如何使用的 …

重学SpringBoot3-集成RocketMQ(二)

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-集成RocketMQ(二) 1. 基础概念2. 准备工作3. 实现事务消息的生产者4. 事务监听器实现5. 消费者示例6. 发送事务消息7. 测试7.1 模…