Python 面向对象(类)

这篇具有很好参考价值的文章主要介绍了Python 面向对象(类)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

面向对象理念

面向对象三大特性 

定义类

格式

创建对象(实例化一个对象)

创建方法

实例方法

类方法

 静态方法

self含义

对象属性

添加获取对象属性

​编辑

类里面获取对象属性

继承

单继承

多继承

多态


面向对象理念

面向对象编程(Object-Oriented Programming,简称OOP)是一种常用的编程范式,它将程序中的数据和操作数据的方法组织在一起,形成对象,通过对象之间的交互来实现程序的功能。

    类:描述具有相同属性和方法的集合,简单来说就是一个模板,通它来创建对象。

    对象:类的实例。

    方法:类中定义的函数。

    类变量:定义在类中且在函数之外的变量,在所有实例化对象中公用。

    局部变量:方法中定义的变量,只作用于当前实例。

面向对象三大特性 

    封装:隐藏对象的属性和实现细节,仅对外提供公共访问方式,提高复用性和安全性。

    继承:一个类继承一个基类便可拥有基类的属性和方法,可提高代码的复用性。

    多态:父类定义的引用变量可以指向子类的实例对象,提高了程序的拓展性。

设计一个类的三要素:

类名,这类事物的名字,大驼峰命名法,例如CapWords,单词之间不使用下划线

属性,这类事物具有什么样的特征

方法,这类事物具有什么样的行为

__方法名__格式的方法是python提供的内置方法/属性

Python 面向对象(类),Python,python

定义类

面向对象是更大的封装,在一个类中包含多个方法(函数)

格式

class 类名:
    
    pass

创建对象(实例化一个对象)

class Person:
    pass


tom = Person()
print(tom)

定义一个类    Person

创建了一个对象   tom

Python 面向对象(类),Python,python

创建方法

  • 实例方法(self):    类和实例的属性和方法都可以访问调用
  • 类方法(cls):         只能使用类属性和方法, 不能使用实例属性和方法
  • 静态方法(static):  类属性方法和实例属性方法都不能使用, 只是依附于该类,相当于独立函数
实例方法

Python 面向对象(类),Python,python

实例方法中的第一个参数是 self,表示实例本身。def定义方法后,会在括号内自动补全 self

class Person:
    def eat(self):
        print("吃了冰淇淋")

    def run(self):
        print("跑了5公里")


tom = Person()
tom.eat()
tom.run()

一个 Person 类,包含了两个方法:eat 和 run

 对象 tom 调用了 eat run 的方法

Python 面向对象(类),Python,python

类方法

类方法中的第一个参数是 cls,表示类本身,类方法可以通过类对象和实例对象进行调用。

定义方法后,在括号内会自动补全  cls 

使用 @classmethod 装饰器

class Car:
    @classmethod
    def describe(cls, color, brand, city):
        print("这是一个类方法", f"这是一辆{city}产的{color}的{brand}轿车")

Car.describe("黑色", "大众", "德国")

Python 面向对象(类),Python,python

 静态方法

默认没有第一个参数,什么也不接收。静态方法是定义在类中的方法,它不需要访问类的实例或实例的属性。它可以通过类名直接调用,而无需创建类的实例。静态方法通常用于执行与类相关但独立于实例的操作。

使用  @staticmethod  装饰器 

class MathUtils:
    @staticmethod
    def multiply(x, y):
        return x * y

result = MathUtils.multiply(2, 3)
print(result)

self含义

self指的是调用该类的对象(是一个实例),是一个python自动会给传值的参数

哪个对象执行方法,self就是谁。

例如

obj1.fetch('haha')         self就是obj1

obj2.fetch('hehe')         self就是obj2

对象属性

添加获取对象属性
对象名.属性名

观察下方示例:

class Washer:
    def wash(self):
        print("洗衣服")

haier = Washer()
haier.wash()
haier.width = 400
haier.height = 600
print(f"洗衣机的长宽是{haier.width}, {haier.height}")
Python 面向对象(类),Python,python

haier.width = 400 和 haier.height = 600  就是定义了一个对象的属性

类里面获取对象属性

观察下方示例:

class Washer:
    def info(self):
        print(F"洗衣机的宽度是{self.width}, 高度是{self.height}")


haier = Washer()
haier.width = 400
haier.height = 600
haier.info()

Python 面向对象(类),Python,python

self.width 和 self.height 就相当于haier.width 和 haier.height。
即self就是该类的对象

继承

单继承

子类拥有父类的所有属性和方法

代码示例

class Animal:
    def eat(self):
        return "吃食物---"
    def run(self):
        return "跑---"

class Dog(Animal):
    def bark(self):
        return "汪汪叫:wangwang~"

class Cat(Animal):
    def mioaomiao(self):
        return "喵喵叫"


animal = Animal()
print(f"动物的天性就是: {animal.eat()}, {animal.run()}")

dog = Dog()
print(f"狗的天性除了: {dog.eat()}, {dog.run()},还会{dog.bark()}")

cat = Cat()
print(f"猫的天性除了: {cat.eat()}, {cat.run()},还会{cat.mioaomiao()}")

 定义了一个动物类:Animal,其包含两个方法:eat  run

 定义了一个狗类:Dog,继承其父类 Animal,这样狗的这个类就拥有了其父类(Aniaml)的eat  run 方法

 同理定义了一个猫类:Cat,继承其父类 Animal,这样狗的这个类就拥有了其父类(Aniaml)的eat run 方法

Python 面向对象(类),Python,python

多继承

和单继承同理,格式参考如下:

class 类名(父类1,父类2):
    pass

 代码示例

class Man:
    def father(self):
        print("父亲叫张航")


class Women:
    def mother(self):
        print("母亲叫王丽")


class Son(Man, Women):
    def son(self):
        print("我叫张宇")


son_name = Son()
son_name.son()
son_name.father()
son_name.mother()

Son 这个类继承了父类 Man 和 Women之后,便拥有了他俩的方法 

Python 面向对象(类),Python,python

多态

" 多态 " 指的是 相同类型不同 对象 完成 某个行为时 , 会得到不同的状态 ;

多态是面向对象编程中一个重要的概念,它允许不同类型的实例在调用相同方法时表现出不同的行为,提高了程序的灵活性和可扩展性

" 多态 " 是通过继承关系 实现的 

观察下方示例:

class Voice:
    def say(self):
        print('动物基本的发声频率:', end=' ')


class People(Voice):
    def say(self):
        super().say()
        return '嘤嘤嘤'


class Dog(Voice):
    def say(self):
        super().say()
        return '汪汪汪'


class Cat(Voice):
    def say(self):
        super().say()
        return '喵喵喵'

voice = Voice()
voice.say()
print()
people = People()
print(f"人的发声频率:{people.say()}")

dog = Dog()
print(f"狗的发生频率:{dog.say()}")

cat = Cat()
print(f"猫的发生频率:{cat.say()}")

创建了一个父类:Voice,并调用它的 say()方法

定义了三个子类:People、Dog、Cat类 ,指定父类 Voice

调用PeopleDogCat类的 say()方法时,使用super().say()语法同时调用父类Voice类的say()方法

输出:

Python 面向对象(类),Python,python文章来源地址https://www.toymoban.com/news/detail-803450.html

到了这里,关于Python 面向对象(类)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Python学习】—面向对象(九)

    类中不仅可以定义属性来记录数据,也可以定义函数,用来记录行为,类中定义的属性(变量)我们称之成员变量,类中定义的行为(函数),我们称之为成员方法。 表示对象本身的意思 只有通过self,成员方法才能访问类的成员变量 self出现在形参列表中,但是不占用参数

    2024年02月08日
    浏览(46)
  • python 面向对象之继承

    前面我们已经学习了 python 面向对象的类和对象,那么今天我将为大家分享面向对象的三大特性之一:继承。 继承具有以下特性: 代码重用:继承允许我们创建一个新的类,并从一个或多个现有的类中继承属性和方法。这使得我们可以避免重复编写相同的代码,提高代码的重

    2024年02月15日
    浏览(52)
  • Python面向对象编程

    本文带领大家过一遍菜鸟学Python的面向对象的部分 类(Class):  用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。 类变量: 类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通

    2023年04月27日
    浏览(46)
  • python 面向对象编程(2)

    前面我们介绍了 python 类和对象以及继承、私有权限,那么今天我们将来介绍 python面向对象 剩下的两大特性封装、多态,以及如何访问、修改类属性、类方法和静态方法的介绍。🚗🚗🚗 Python中的封装是一种面向对象编程的概念,它将数据和操作这些数据的方法封装到一个

    2024年02月16日
    浏览(56)
  • Python面向对象(全套)

    编程思想分为面向对象和面向语言 什么是面向过程? 面向过程即以事物发生过程为主要目标进行编程(什么正在发生) 什么是面向对象? 面向对象即把一件事物为对象进行编程,每个对象都有属性和方法。 例如:人可以作为对象,属性有姓名、年龄、身高...方法有走、跑

    2024年02月15日
    浏览(45)
  • python 面向对象编程

    大家好,前面我们学习了 python 的基础用法,那么从今天开始,我们将学习 python 的面向对象编程,那么什么叫做面向对象的编程呢? 面向对象编程是一种编程范式,它将数据和操作数据的方法封装在对象中,并通过对象之间的交互来实现程序的设计和实现。 在面向对象编程

    2024年02月13日
    浏览(50)
  • Python——面向对象案列

     1. 2. 3. 定义学员信息类,包含姓名、成绩属性,定义成绩打印方法(90分及以上显示优秀,80分及以上显示良好,70分及以上显示中等,60分及以上显示合格,60分以下显示不及格) 4. 小明体重75.0公斤,小明每次跑步会减掉0.50公斤,小明每次吃东西体重增加1公斤 对象:小明

    2024年01月20日
    浏览(41)
  • Python面向对象专题一

    1.初识面向对象 Key Point 面向对象概念 类的定义 对象的创建 isinstance函数 类本身也是一个对象 面向对象概念 类,描述一类对象的特征集合。 对象,符合类定义特征的具体实例。 属性,分为类属性和实例属性。 方法,分为类方法和实例方法。 类的定义 使用class来定义

    2024年02月02日
    浏览(31)
  • Python 面向对象(一)(成员方法、类和对象)

    学校开学,要求学生填写自己的基础信息,一人发一张白纸,让学生自己填 改为登记表,打印出来让学生自行填写: 在程序中简单使用变量来记录学生信息  使用变量记录数据太乱了。 如果程序中也和生活中一样 可以设计表格 可以将设计的表格打印出来 可以将打印好的表

    2024年02月15日
    浏览(50)
  • Python面向对象植物大战僵尸

     

    2024年02月12日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包