Python 面向对象编程—类和对象基础知识、继承


面向对象

面向对象( 0bject 0riented )是软件开发方法,是一种程序设计规范,是一种对现实世界理解和抽象的方法。在面向对象编程思想中,一切事物皆对象,通过面向对象的方式,将现实世界的事物抽象成对象。

总的来说面向对象编程,一是属性,二是方法。

 

面向对象术语

1.类(class):用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例

2.方法:类中定义的函数

3.类变量(属性):类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体(方法)之外。类变皇通常不作为实例变量使用,类变量也称作属性

4.数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据

5.方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写

6.实例变量:定义在_init__方法中的变量,只作用于当前实例的类

7.继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待,以普通的类为基础建立专门的类对象

8.实例化:创建一个类的实例,类的具体对象。一个类可以实例化出无数个对象

9.对象:通过类定义的数据结构实例。

 

实例演示

 

1、定义一个Rectangle矩形类

 

(1)两个名为width和height的数据域,它们分别表示矩形的宽和高。width和height的默认值都为1。

 

(2)创建矩形的参构造方法。

 

(3)一个创建width和height为指定值的矩形的构造方法。

 

(4)一个名为getArea()的方法返回这个矩形的面积。

 

(5)一个名为getPerimeter()的方法返回周长。

class Rectangle:
  #两个名为width和height的数据域,它们分别表示矩形的宽和高。width和height的默认值都为1。 height = 1 width = 1 def __init__(self, w, h): self.width = w self.height = h def getArea(self): return self.height * self.width def getPerimeter(self): return (self.height + self.width) * 2 # def getHeight(self): # return self.height # # def getWidth(self): # return self.width class ShiYan: if __name__ == '__main__': test = Rectangle(4, 3) print(test.getArea()) print(test.getPerimeter())

 

类继承

通过继承,新类可以获取现有类的属性和方法,新类称作子类或派生类,被继承的类称作父类、基类或超类。在子类中可以定义新的属性和方法,从而完成对父类的扩展。

实例:

 

通过一个对象返回一个Class对象,获取该对象所属类的名称以及父类的名称。

class Student:

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


class Student1(Student):

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

    def show_info(self):  # 重写父类方法
        print(f"name: {self.name}, age:{self.age}, sex:{self.sex}, stu_id:{self.id}")


class XiaoMing(Student):

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


# class ShiYan():
if __name__ == '__main__':
    a = Student1("小红", "女", 18, 1)
    # b = XiaoMing("小明", "男", 20, 2)

    # 通过类的对象返回类的名字
    print(type(a).__name__)

    # 给定一个类的对象a,要求获取该对象的父类
    print(a.__class__.__bases__[0].__name__)

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/python/289487.html

(0)
上一篇 2022年9月14日 21:11
下一篇 2022年9月14日 21:43

相关推荐

发表回复

登录后才能评论

WordPress 数据库错误: [Duplicate entry '80-d16c1647a53da3ad6bbb3d1108156ba7' for key 'task_id_source_url_key']
insert into wp_autoblog_queue(task_id,source_url,source_url_key,create_date_time,not_check_stoped,post_interval) values(80,'https://pythonjishu.com/robotic-process-automation/','d16c1647a53da3ad6bbb3d1108156ba7',1735360972,0,0)