首页 > 编程语言 >Python教程:类的派生

Python教程:类的派生

时间:2023-03-01 16:46:40浏览次数:32  
标签:__ 教程 name 派生 Python self sex init age

一、派生

派生:子类中新定义的属性的这个过程叫做派生,并且需要记住子类在使用派生的属性时始终以自己的为准

1 派生方法一(类调用)

指名道姓访问某一个类的函数:该方式与继承无关

class OldboyPeople:
    """由于学生和老师都是人,因此人都有姓名、年龄、性别"""
    school = 'oldboy'

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


class OldboyStudent(OldboyPeople):
    """由于学生类没有独自的__init__()方法,因此不需要声明继承父类的__init__()方法,会自动继承"""

    def choose_course(self):
        print('%s is choosing course' % self.name)


class OldboyTeacher(OldboyPeople):
    """由于老师类有独自的__init__()方法,因此需要声明继承父类的__init__()"""

    def __init__(self, name, age, gender, level):
        OldboyPeople.__init__(self, name, age, gender)
        self.level = level  # 派生

    def score(self, stu_obj, num):
        print('%s is scoring' % self.name)
        stu_obj.score = num


stu1 = OldboyStudent('tank', 18, 'male')
tea1 = OldboyTeacher('nick', 18, 'male', 10)
print(stu1.__dict__)
{'name': 'tank', 'age': 18, 'gender': 'male'}


print(tea1.__dict__)
{'name': 'nick', 'age': 18, 'gender': 'male', 'level': 10}

2 派生方法二(super)

  • 严格以来继承属性查找关系
  • super()会得到一个特殊的对象,该对象就是专门用来访问父类中的属性的(按照继承的关系)
  • super().__init__(不用为self传值)
  • super的完整用法是super(自己的类名,self),在python2中需要写完整,而python3中可以简写为super()
class OldboyPeople:
    school = 'oldboy'

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

#学习中遇到问题没人解答?小编创建了一个Python学习交流群:711312441
class OldboyStudent(OldboyPeople):
    def __init__(self, name, age, sex, stu_id):
        # OldboyPeople.__init__(self,name,age,sex)
        # super(OldboyStudent, self).__init__(name, age, sex)
        super().__init__(name, age, sex)
        self.stu_id = stu_id

    def choose_course(self):
        print('%s is choosing course' % self.name)


stu1 = OldboyStudent('tank', 19, 'male', 1)
print(stu1.__dict__)
{'name': 'tank', 'age': 19, 'sex': 'male', 'stu_id': 1}

标签:__,教程,name,派生,Python,self,sex,init,age
From: https://www.cnblogs.com/xxpythonxx/p/17168779.html

相关文章

  • CentOS 7上使用Python 3和虚拟环境
    在CentOS7上使用Python3和虚拟环境,请按照以下步骤操作:首先,确保您的系统已安装Python3。您可以使用以下命令检查Python3是否已安装:python3--version如果Python3已......
  • 算法刷题-表达式求值-PYTHON
    0x00引言为获取一个良好的算法思维,以及不再成为一个脚本小子,争取每天一道算法题,培养自己的逻辑思维,温顾各类型语言语法知识。题解只写自己理解的解法,其他解法不再增加。......
  • Python 中都有哪些常见的错误和异常?
    本文首发自「慕课网」,想了解更多IT干货内容,程序员圈内热闻,欢迎关注!作者|慕课网精英讲师朱广蔚Python程序的执行过程中,当发生错误时会引起一个事件,该事件被称为异常。例如......
  • 【自动化测试】airtest+python移动端测试实践
    Airtest框架基于python的测试框架,核心原理是基于python的内置unittest进行延申开发的测试框架,核心主要包含两个模块:airtest,poco airtest:(1)图像识别(2)封装了ad......
  • python numpy中的cumsum的用法
    1、函数作用该函数定义在multiarray.py中有定义defcumsum(self,axis=None,dtype=None,out=None):#realsignatureunknown;restoredfrom__doc__"""......
  • Centos系统挂载硬盘到根目录教程
      【查看机器所挂硬盘个数及分区情况】fdisk-l【查看文件系统容量已用可用已用占比挂载点】df-h【给硬盘进行分区(名称不一定是sdb,具体以fdisk-l展示的为准)......
  • Python实战项目4-首页搭建/git安装使用
    前台主页功能首页页面组件头部组件(小组件)<template><divclass="header"><divclass="slogan"><p>老男孩IT教育|帮助有志向的年轻人通......
  • Typora学习教程
    Typora教程一.Typora介绍什么是TyporaTypora,被称为世界上最漂亮的写作App。他是一个多功能的Markdown编辑器,可以将它用来日常记笔记或写日记。Typora的界面简洁,没有Wi......
  • Python eval代码函数示例
    描述eval()函数用来执行一个字符串表达式,并返回表达式的值。语法以下是eval()方法的语法:eval(expression[,globals[,locals]])参数expression--表达式。globals--变......
  • Python file 函数代码示例
    描述file() 函数用于创建一个file对象,它有一个别名叫 ​​open()​​,更形象一些,它们是内置函数。参数是以字符串的形式传递的。更多文件操作可参考:​​Python文件I/O​......