返回顶部
首页 > 资讯 > 后端开发 > Python >Python面向对象(全套)
  • 468
分享到

Python面向对象(全套)

python开发语言 2023-08-31 09:08:31 468人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

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

前言

编程思想分为面向对象和面向语言

什么是面向过程?

面向过程即以事物发生过程为主要目标进行编程(什么正在发生)

什么是面向对象?

面向对象即把一件事物为对象进行编程,每个对象都有属性和方法。

例如:人可以作为对象,属性有姓名、年龄、身高...方法有走、跑、跳...

车可以作为对象,属性有轮胎、车灯,方向盘...方法有载人、放音乐...

python也支持面向对象的三大特征:封装、继承、多态

类和对象

类:是对一些具有相同特征和行为的事物的分类,它是抽象的

对象:它是类的实例化,是具体的

类与对象的关系即模板与产品:模板只能有一个,但对象可以有很多个

我们通常用大驼峰命名法去命名一个类名

类的详解

Python中定义类有两种:旧式类新式类

在早期Python中,类不会默认继承object,而没有继承object的类为旧式类。而在python3之后,类会默认继承object类,继承了object的类为新式类

旧式类:

class A:    pass

新式类:

class B(object):    pass

现在一般都使用新式类

属性

在Python中类中的属性分为两种:公有属性私有属性

公有属性:可以在类内类外使用,没有限制

私有属性:只能在类内使用,但可以使用方法间接访问

私有属性定义时需在前面加上两个下划线(__)

class A(object):        #公有属性    a = "public"    #私有属性    __b = "private"     print("属性为"+a)    print("属性为"+__b)test = A()

属性为public
属性为private

方法

在Python中类中的方法分为两种:公有方法私有方法

公有方法:可以在类内类外使用,没有限制

私有方法:只能在类内使用

私有属性定义时需在前面加上两个下划线(__)

class A(object):    def public(self):        print("公有方法")    def __private(self):        print("私有方法")test = A()test.public()test._A__private()

公有方法
私有方法

Python中访问私有方法可以通过:实例化类._类__私有化方法

类中内置方法(魔法函数)

在Python的类中以__XX__命名的方法都是类中的内置方法即魔法函数

如何查看类中的内置函数:

print(dir(object))

['__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__fORMat__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__']

类中常用的内置方法:

1、__init__对象初始化时,会被自动调用

可以使用__init__方法来控制对象初始化的过程

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

2、__new__创建对象时,会被自动调用

3、__del__对象被从内存中销毁前,会被自动调用

4、__str__返回对象的描述信息,print函数输出使用

class Animal(object):    def __init__(self,name,age,sex):        self.name = name        self.age = age        self.sex = sex    def __str__(self):        return "name = "+ self.name +""a = Animal("dog","2years","man")print(a)

name = dog

在使用__str__方法后用print函数去输出实例化对象时会输出__str__函数中给定的描述信息(属性为私有化也可被输出)

面向对象的三大特征

封装 继承 多态

封装

  • 将属性和行为作为一个整体,表现生活中的事物
  • 将属性和行为加以权限控制

在Python中定义类时,我们都需要将属性私有化,如何提供公开的方法去供外部访问和修改

class Animal(object):    def __init__(self,name,age,sex):        self.__name = name        self.__age = age        self.__sex = sexa = Animal("dog","2years","man")

此例子中的属性都为私有属性,那我们如何去访问?

第一种封装方式:

在类中提供get方法和set方法供外部访问

class Animal(object):    def __init__(self,name,age,sex):        self.__name = name        self.__age = age        self.__sex = sex    #提供公开的get方法    def get_name(self):        return self.__name    #提供公开的set方法    def set_name(self,name):        self.__name = namea = Animal("dog","2years","man")print(a.get_name())a.set_name("cat")print(a.get_name())

dog

cat

第二种封装方式:

使用porperty()函数,使用此函数的时候需要有get方法和set方法

class Animal(object):    def __init__(self,name,age,sex):        self.__name = name        self.__age = age        self.__sex = sex    #提供公开的get方法    def get_name(self):        return self.__name    #提供公开的set方法    def set_name(self,name):        self.__name = name    name = property(get_name,set_name)a = Animal("dog","2years","man")print(a.name)a.name = "cat"print(a.name)

dog
cat

注意:在类外修改属性时a.后需要跟接受property的变量

第三种封装方式:

通过装饰器@property在get方法上进行装饰

class Animal(object):    def __init__(self,name,age,sex):        self.__name = name        self.__age = age        self.__sex = sex    @property    def name(self):        return self.__name    @name.setter    def name(self,name):        self.__name = namea = Animal("dog","2years","man")print(a.name)a.name = "cat"print(a.name)

dog
cat

继承

类与类之间还有种关系,即继承

继承可以提高代码的利用率、复用率

object为所有类的父类,Python支持多继承class Son(father1,father2......),在多继承中需要注意继承顺序,在继承时它会按照继承顺序来继承,即优先级

class father(object):    def __init__(self):        self.money =100        self.home = "房子"    def tell(self):        print("ok")#儿子继承了父亲class son(father):    passif __name__ == '__main__':    a = son()    a.tell()    print(a.money)    print(a.home)

ok
100
房子

注意:子类可以继承父类的所有公有属性公有方法

在子类继承父类后,父类中的方法不能满足子类的使用时,我们可以在子类中进行方法重写

方法重写时,子类与父类的方法名称、参数必须相同

在Python中有方法的重写,但是没有方法重载,但是可以实现方法的重载(装饰器)

方法重写示例:

class father(object):    def tell(self):        print("我喜欢平平淡淡")#儿子继承了父亲class son(father):    def tell(self):        print("我喜欢赚钱")if __name__ == '__main__':    a = son()    a.tell()

我喜欢赚钱

super()关键字:它相当于一个指针,默认指向指针

class father(object):    def tell(self):        print("我喜欢平平淡淡")#儿子继承了父亲class son(father):    def tell(self):        print("我喜欢赚钱")    def test(self):        self.tell()        super().tell()if __name__ == '__main__':    a = son()    a.test()

我喜欢赚钱
我喜欢平平淡淡

多态

多态基于继承的基础之上,一个对象的多种实现,即父类引用指向子类实例的现象

Python是弱数据语言,所以多态在python中显得不太重要,它在定义变量的时候不用声明数据类型,因此支持多态

class father(object):    def tell(self):        print("我是父亲")#儿子继承了父亲class son(father):    def tell(self):        print("我是儿子")#女儿继承了父亲class daughter(father):    def tell(self):        print("我是女儿")def test(father):    father.tell()if __name__ == '__main__':    a = father()    b = son()    c = daughter()    test(a)    test(b)    test(c)

我是父亲
我是儿子
我是女儿

在例子中通过tell()函数实现了父类引用指向子类实例,完成了一个函数的多种实现

来源地址:https://blog.csdn.net/Thewei666/article/details/126652501

--结束END--

本文标题: Python面向对象(全套)

本文链接: https://lsjlt.com/news/385057.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python面向对象(全套)
    前言 编程思想分为面向对象和面向语言 什么是面向过程? 面向过程即以事物发生过程为主要目标进行编程(什么正在发生) 什么是面向对象? 面向对象即把一件事物为对象进行编程,每个对象都有属性和方法。 例如:人可以作为对象,属性有姓名、年龄、身高...
    99+
    2023-08-31
    python 开发语言
  • python 面向对象、类、对象
    class 类 object 对象 object-oriented programming 面向对象,简称OOP attribute 属性 method 方法 inheritance 继承 python中通过类和对象来实现 ...
    99+
    2023-01-31
    面向对象 对象 python
  • python 面向对象
    面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序...
    99+
    2023-01-30
    面向对象 python
  • python面向对象
    python面向对象 目录: 1.类的定义和使用 2.类的封装 3.类的继承 4.多态   1.类的定义和使用 查、增加、修改、删除、初始化方法、实例化 __init__()方法是一种特殊的方法,被称为类的构造函数或初始化方法,当创建了这...
    99+
    2023-01-30
    面向对象 python
  • Python|面向对象
    #一、类、对象定义及使用 #定义类语法:class 类名(父类):代码块注意:()可有可无 #class Student: #class Student(): #创建对象(实例)语法:对象名=类名() 注意:Java语言在实例化对...
    99+
    2023-01-30
    面向对象 Python
  • python - 面向对象
    #python面向对象 - 类定义   注意:特殊方法"__init__"前后分别有两个下划线!!!   __init__方法可以理解成定义属性的方法,编辑器中会默认将属性都绑定到self中,在使用时直接self.shuxing 即可哟;...
    99+
    2023-01-31
    面向对象 python
  • Python全栈开发之面向对象
    No.1 概念 面向对象的特点? 注重对象和指责,不同的对象承担各自的指责 更加适合对复杂的需求变化,专门应对复杂项目开发,提供固定的套路 面向对象强调的是谁来做,面向过程强调的如何做 什么是类 类是对一群具有相同特征或者行为的事物统称,是...
    99+
    2023-01-31
    面向对象 Python
  • Python全栈之面向对象基础
    目录1. 面向对象oop了解2. 对象的相关操作小提示:3. 类的相关操作4. 类对象的删除操作小提示:5. 小练习小提示:答案:总结1. 面向对象oop了解 # ### oop...
    99+
    2024-04-02
  • Python面向对象之面向对象基本概念
    面向过程和面向对象概念 过程和函数:过程类似于函数,只能执行,但是没有返回结果;函数不仅能执行,还能返回结果。 面向过程和面向对象 基本概念 面向过程-怎么做 把完成某一个需求的所有步骤从头到尾逐步实现; 根据开发需求,将某些功能独立的...
    99+
    2023-01-31
    面向对象 基本概念 Python
  • python面向对象(一)
    面向对象 1.初始面向对象     面向过程:         一切以事务的发展流程为中心.     面向对象:         一切以对象为中心. 一切皆为对象. 具体的某一个事务就是对象     打比方:   面向过程  ...
    99+
    2023-01-30
    面向对象 python
  • [Python3]Python面向对象
    一、面向对象的程序设计的由来 1.第一阶段:面向机器,1940年以前 最早的程序设计都是采用机器语言来编写的,直接使用二进制码来表示机器能够识别和执行的指令和数据。 简单来说,就是直接编写 0 和 1 的序列来代表程序语言。例如:使用 ...
    99+
    2023-01-31
    面向对象 Python
  • python面向对象,类
    1:类和对象    是面向对象中的俩个重要概念,类是对事物的抽象,比如人类,球类。对象是事物的实例,比如足球,篮球。球类可以对球的特征和行为进行抽象,然后可以实例化一个真实的球体出来。2:类的定义    类把需要的变量和函数组合成一起,这种...
    99+
    2023-01-31
    面向对象 python
  • 面向对象之类的成员,嵌套
    类的成员可分为三大类:字段丶方法和属性   字段包括:普通字段和静态字段,他们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同.   普通字段属于对象   静态字段属于类 class Foo: #类变量(静态字段)...
    99+
    2023-01-30
    嵌套 面向对象 成员
  • Python面向对象之类和对象
    目录类定义类定义类和属性类中方法对象方法(普通方法)类方法静态方法魔术方法对象创建对象对象属性总结 类 定义类 所有类名首字母要求大写,多个单词时遵循驼峰命名法 所...
    99+
    2024-04-02
  • 面向对象之套接字(socket)和黏包
      tcp是基于链接的,必须先启动服务端,然后再启动客户端去链接服务端   基于UDP协议的socket   server端: import socket udp_sk = socket.socket(type=socket.SOCK...
    99+
    2023-01-30
    面向对象 socket
  • python 面向对象编程
    文章目录 前言如何理解面向对象编程在 python 中如何使用面向对象编程定义类创建对象self添加和获取对象属性添加属性类外添加属性类中添加属性 访问属性类外访问属性类中访问属性 ...
    99+
    2023-08-31
    python 开发语言
  • python是面向对象吗
    这篇文章主要介绍了python是面向对象吗的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python是面向对象吗文章都会有所收获,下面我们一起来看看吧。python是面向对象的。Python语言在设计之初,就定...
    99+
    2023-07-04
  • #3 Python面向对象(二)
    前言 上一节主要记录面向对象编程的思想以及Python类的简单创建,这节继续深入类中变量的相关知识,Here we go! Python中类的各种变量 1.1 类变量 类变量定义:在类中,在函数体(方法)外的变量称为类变量。类变量在整个类...
    99+
    2023-01-30
    面向对象 Python
  • Python 面向对象进阶
     sys模块 1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 import sys 4 ''' 5 sys.argv : 在命令行参数是一个空列表,在其他中第一个列表元...
    99+
    2023-01-30
    进阶 面向对象 Python
  • Python 面向对象介绍
    一、类的实例化:调用类产生对象的过程称为类的实例化,实例化的结果是一个对象,或称为一个实例 1 class People: 2 def __init__(self,name,age,sex): 3 self.na...
    99+
    2023-01-30
    面向对象 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作