我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python面向对象(全套)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python面向对象(全套)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python - 面向对象

#python面向对象 - 类定义  注意:特殊方法"__init__"前后分别有两个下划线!!!   __init__方法可以理解成定义属性的方法,编辑器中会默认将属性都绑定到self中,在使用时直接self.shuxing 即可哟;  
2023-01-31

python 面向对象、类、对象

class 类 object 对象 object-oriented programming 面向对象,简称OOP attribute 属性 method 方法inheritance 继承 python中通过类和对象来实现 面向对象的编程面向
2023-01-31

python面向对象

python面向对象目录:1.类的定义和使用2.类的封装3.类的继承4.多态 1.类的定义和使用查、增加、修改、删除、初始化方法、实例化__init__()方法是一种特殊的方法,被称为类的构造函数或初始化方法,当创建了这个类的实例时就会调用
2023-01-30

python 面向对象

面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序
2023-01-30

Python|面向对象

#一、类、对象定义及使用#定义类语法:class 类名(父类):代码块注意:()可有可无#class Student:#class Student():#创建对象(实例)语法:对象名=类名() 注意:Java语言在实例化对象是,采用n
2023-01-30

Python全栈开发之面向对象

No.1 概念面向对象的特点?注重对象和指责,不同的对象承担各自的指责更加适合对复杂的需求变化,专门应对复杂项目开发,提供固定的套路面向对象强调的是谁来做,面向过程强调的如何做什么是类类是对一群具有相同特征或者行为的事物统称,是抽象的,不能
2023-01-31

Python面向对象之面向对象基本概念

面向过程和面向对象概念过程和函数:过程类似于函数,只能执行,但是没有返回结果;函数不仅能执行,还能返回结果。面向过程和面向对象 基本概念面向过程-怎么做把完成某一个需求的所有步骤从头到尾逐步实现;根据开发需求,将某些功能独立的代码封装成一个
2023-01-31

[Python3]Python面向对象

一、面向对象的程序设计的由来1.第一阶段:面向机器,1940年以前最早的程序设计都是采用机器语言来编写的,直接使用二进制码来表示机器能够识别和执行的指令和数据。简单来说,就是直接编写 0 和 1 的序列来代表程序语言。例如:使用 0000
2023-01-31

python面向对象,类

1:类和对象    是面向对象中的俩个重要概念,类是对事物的抽象,比如人类,球类。对象是事物的实例,比如足球,篮球。球类可以对球的特征和行为进行抽象,然后可以实例化一个真实的球体出来。2:类的定义    类把需要的变量和函数组合成一起,这种
2023-01-31

python面向对象(一)

面向对象1.初始面向对象     面向过程:         一切以事务的发展流程为中心.     面向对象:         一切以对象为中心. 一切皆为对象. 具体的某一个事务就是对象     打比方:  面向过程         大象
2023-01-30

面向对象之类的成员,嵌套

类的成员可分为三大类:字段丶方法和属性  字段包括:普通字段和静态字段,他们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同.  普通字段属于对象  静态字段属于类class Foo: #类变量(静态字段) coun
2023-01-30

python 面向对象(成员)

1. 成员    在类中你能写的所有内容都是类的成员2. 变量    1. 实例变量: 由对象去访问的变量.class Person: def __init__(self, name, id, gender, birth):
2023-01-30

Python面向对象——继承

#coding:utf-8"""术语:1、在python3中,自定义创建的类都默认继承了python类中名为object的类2、object类提供的方法,是双下划线开头的,是为了提供给python内部使用3、被继承的类叫做超类,或者叫做父类
2023-01-31

Python 面向对象介绍

一、类的实例化:调用类产生对象的过程称为类的实例化,实例化的结果是一个对象,或称为一个实例1 class People:2 def __init__(self,name,age,sex):3 self.name=na
2023-01-30

Python面向对象编程

面向对象最重要的概念就是类(Class)和实例(Instance),Java比较熟了,下面贴代码注释 class Student(object): def __init__(self, name, score): sel
2023-01-30

Python - 面向对象学习

本节内容: 面向对象编程介绍为什么要用面向对象进行开发?面向对象的特性:封装、继承、多态类、方法、  引子你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战>的游戏,你就思考呀,人狗作战,那至少需要2个角色,一个是人, 一个是
2023-01-31

面向对象之套接字(socket)和黏包

tcp是基于链接的,必须先启动服务端,然后再启动客户端去链接服务端  基于UDP协议的socket  server端:import socketudp_sk = socket.socket(type=socket.SOCK_DGRAM)
2023-01-30

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录