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高级 — 面向对象 -> 正文阅读

[Python知识库]Python高级 — 面向对象

1.谈谈你对面向对象的理解?

????????面向对象是相当于面向过程而言的,面向过程语言是一种基于功能分析的,以算法为中心的程序设计方法,而面向对象是一种基于结构分析的,以数据为中心的程序设计思想。在面向对象语言中有一个很重要的东西,叫做类。面向对象有三大特性:封装、继承、多态。

2.Python中的可变对象和不可变对象

????????不可变对象,该对象所指向的内存中的值不能被改变。当改变某个变量时候,由于其所指的值不能被改变,相当于把原来的值复制一份后再改变,这会开辟一个新的地址,变量再指向这个新的地址。
????????可变对象,该对象所指向的内存中的值可以被改变。变量(准确的说是引用)改变后,实际上其所指的值直接发生改变,并没有发生复制行为,也没有开辟出新的地址,通俗点说就是原地改变。
????????Pyhton中,数值类型 (int flfloat) ,字符串 str 、元祖 tuple 都是不可变类型。而列表 list 、字典 dict 、集合 set 是可变类型。

3.Python的魔法方法

????????魔法方法就是可以给你的类增加魔力的特殊方法,如果你的对象实现(重载)了这些方法中的某一个,那么这个方法就会在特殊的情况下被Python 所调用,你可以定义自己想要的行为,而这一切都是自动发 生的,它们经常是两个下划线包围来命名的(比如 __ init__ , __ len__ ),Python 的魔法方法是非常强 大的所以了解其使用方法也变得尤为重要 !
????????__init__ 构造器,当一个实例被创建的时候初始化的方法,但是它并不是实例化调用的第一个方法。
????????__new__ 才是实例化对象调用的第一个方法,它只取下 cls 参数,并把其他参数传给 __init__ __new__ 很少使用,但是也有它适合的场景,尤其是当类继承自一个像元祖或者字符串这样不经常改 变的类型的时候。
??????? __call__ 让一个类的实例像函数一样被调用 。
??????? __getitem__ 定义获取容器中指定元素的行为,相当于 self[key] 。
??????? __getattr__ 定义当用户试图访问一个不存在属性的时候的行为。
??????? __setattr__ 定义当一个属性被设置的时候的行为 。
??????? __getattribute__ 定义当一个属性被访问的时候的行为。

4.面向对象中怎么实现只读属性?

?????????将对象私有化,通过共有方法提供一个读取数据的接口。

class person:
    def __init__(self, x): 
        self._age = 10
    def age(self):
        return self._age 

t = person(22)
# t. age =100 
print(t.age())
????????最好的方法
# 1、让类继承object
class Person(object):
    def __init__(self):
        self.__age = 18

    #2、通过@property 让实例对象以".age"的方式, 来使用这个方法
    @property
    def age(self): #3、方法名直接使用属性名
        return self.__age


p1 = Person()
print(p1.age)
# p1.age = 10 # error

??? Python基础19-面向对象(属性限制-只读) - 简书

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-10-17 11:57:20  更:2021-10-17 11:58:33 
 
开发: 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年12日历 -2024/12/29 10:50:13-

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