IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python_Day9_面向对象 -> 正文阅读

[Python知识库]Python_Day9_面向对象

方法是对象;函数是对象;Python一切皆是对象

私有属性和私有方法(实现封装)

class Person:
    def __init__(self,name,age):
        self.name = name
        self.__age = age    #私有属性
    def printPerson(self):
        print('{0}的年龄是{1}'.format(self.name,self.__age))
    def __printPerson(self):
        print('{0}的年龄是{1}'.format(self.name, self.__age))
p = Person('sxl',21)
p.printPerson()
print(p.name)
#print(p.__age)          #无法访问私有属性
print(p._Person__age)
p._Person__printPerson()        #访问私有方法,注意下划线不同      
print(dir(p))  
name存储:'name'
__age存储:'_Person__age'
__printPerson()存储:'_Person__printPerson'

@property 装饰器

将方法调用变成属性调用

class Person:
    def __init__(self,name,age):
        self.__name = name
        self.__age = age
    @property
    def age(self):
        return self.__age
    @age.setter
    def age(self,age):
        if 0<age<150:
            self.__age = age
        else:
            print('年龄输入错误')
#调用
p = Person('sxl','18')
p.age = 3
print(p.age)

面向对象三大特征

封装(隐藏)

“私有属性、私有方法”的方式,实现“封装”。
实际上就是隐藏对象的属性和相关细节,只是一些调用。

继承

子类继承父类的方法
重复的方法,直接继承父类,而不用去重新拷贝代码

  • 继承父类方法以及属性

只有构造函数需要显示声明

class Student(Person):      #继承父类
    def __init__(self,name,age,school):
        Person.__init__(self,name,age)      #显示调用父类构造函数
        self.school = school
  • 重写

覆盖父类的某个方法,直接调用该类的方法

  • mro()方法,可以查看继承层次结构
print(Student.mro())
[<class '__main__.Student'>, <class '__main__.Person'>, <class 'object'>]
  • 重写__str__()方法

用于返回一个对于“对象的描述”

  • MRO()

Python 支持多继承,如果父类中有相同名字的方法,在子类没有指定父类名时,解释器将“从左向右”按顺序搜索。

  • super()获得父类定义

在子类中,如果想要获得父类的方法时,我们可以通过 super()来做。
super()代表父类的定义,不是父类对象。

多态

指同一个方法调用由于对象不同可能会产生不同的行为。

class Person:
    def eye(self):
        print('人类眼睛有颜色')
class Chinese(Person):
    def eye(self):
        print('棕色')
class Us(Person):
    def eye(self):
        print('蓝色')
def color(a):
    if isinstance(a,Person):
        a.eye()
color(Us())
color(Chinese())
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-01-11 23:57:04  更:2022-01-11 23:58:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 4:48:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码