首页 > 编程语言 >python_面向对象

python_面向对象

时间:2023-04-20 22:48:45浏览次数:34  
标签:__ 变量 python 面向对象 实例 对象 方法

魔法函数

魔术访达的一些说明

img

  1. 23-24

img
img

  1. 魔术方法并不是来自继承,而是python自带的这些方法,跟类没有关系

__getitem__方法

  1. 因为实现了__getitem__(),所以可以直接遍历这个student对象
    img

__getitem__方法的参数

img

  1. item就是相当于数组的下标
  2. 13行

对象实例化对象进行切片操作

img

  1. 21行,甚至可以对实例对象进行切片操作

__len__方法

img

  1. 25行,对实例对象使用len方法,报错,

img

  1. 需要在16-17行实现__len__方法

__str__方法

img

  1. 调用print打印实例化对象的时候,实际上调用的是改对象的__str__方法

__abs__方法

img

__add__方法

img

鸭子类型

img

  1. 53行和58行,Cat和Dog类都有say()方法

说明

img

  1. 48行,只关注方法的类型,不关注方法的实现,

遍历执行

img

  1. 76-78行,把各个对象都添加到一个列表当中,然后遍历执行

extend扩展

img
img

  1. 91-92行
  2. list也可以扩展map,因为extend的参数要求一个可迭代对象就是可以进行扩展

抽象类的作用

img

  1. 25-26行,抽象类的作用

NotImplementedError

img

  1. 87,90,
  2. 如果这个RedisCache继承了CacheBase,但是没有重写get和set方法,就回抛出异常,当然这里是我们手动抛出异常

img

@abc.abstractmethod注释,来声明抽象方法

img

抽象基类的建议

img

  1. 127
  2. 尽量不去使用

img

  1. 128,129
  2. 尽量使用多继承和mixin代替抽象基类

isinstance和type的区别

isinstance

img

type

img

类变量

类修改类变量,实例对象访问类变量

img

  1. 30-32

实例对象修改类变量,类访问类变量

img

  1. 36

深层原理

img

  1. 38-39

多继承

深度优先

img

广度优先

img

mro

img

  1. 69,82
  2. 探索过__mro__可以查看多继承的查找顺序

标签:__,变量,python,面向对象,实例,对象,方法
From: https://www.cnblogs.com/zhuoss/p/17338597.html

相关文章

  • 【进阶15】【自学笔记】Python运行cmd命令的几种方式
    一、pathlib的简单介绍pathlib是Python3.4及更高版本中内置的标准库,提供了一种面向对象的方式来处理文件系统路径。它为不同操作系统提供了合适的路径语义,并支持常见的文件和目录操作,比如判断路径是否存在、获取路径的各个部分、创建/删除目录等操作。二、基本操作1、获取......
  • Python 判断服务端口是否被占用脚本
    背景自动注册服务时判断端口是否被占用代码详情importsocketdefcheck_port(address,port):#创建套接字对象sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)#检查端口是否占用result=sock.connect_ex((address,port))#关闭套接字......
  • 【进阶14】【自学笔记】Python运行cmd命令的几种方式
    1、使用os.system()函数importos#运行cmd命令os.system('dir')2、使用subprocess模块importsubprocess#运行cmd命令subprocess.run(['dir'],shell=True)3、使用os.popen()函数importos#运行cmd命令result=os.popen('dir')print(result.read......
  • 对比Python中的列表、元组、字典、集合、字符串等之间异同
    1.数据类型列表、元组、字典、集合、字符串均属于python3的标准数据类型。字符串和元组属于不可变数据,即创建后不可修改。列表、字典、集合属于可变数据,即创建后可以修改元素。2.创建有元素的对象3.创建没有元素的对象列表使用eval()或list()或中括号[]进行创建,元素之间使用逗号分......
  • Linux 编译安装 Python3
    本文档适用Python3.9及以上版本。1.提前安装依赖yuminstall-ygccncurses-develgdbm-develxz-develsqlite-develtk-develuuid-develreadline-develbzip2-devellibffi-developenssl11openssl11-devel2.设置编译FLAGAWSAMI:exportCFLAGS=$(pkg-config--cflagsli......
  • #yyds干货盘点#python之 Lambda 表达式
    lambda 关键字用于创建小巧的匿名函数。lambda a, b: a+b 函数返回两个参数的和。Lambda函数可用于任何需要函数对象的地方。在语法上,匿名函数只能是单个表达式。在语义上,它只是常规函数定义的语法糖。与嵌套函数定义一样,lambda函数可以引用包含作用域中的变量:>>>defmake_......
  • [oeasy]python0135_变量名与下划线_dunder_声明与赋值
    变量定义回忆上次内容变量就是能变的量上次研究了变量标识符的规则第一个字符应该是字母或下划线合法的标识符可以包括大小写字母数字下划线  还研究了字符串(str)的函数isidentifier查询字符串是否为合法标识符 ......
  • python-crontab表达式
    起源于一个比较奇葩的需求,默认的celery无法实现:需要用户输入一个开始时间,结束时间,以及时间间隔,需要在该时间段内指定间隔执行importdatetimedeftask(start:datetime.datetime,end:datetime.datetime,interval:datetime.timedelta):"""*****"""......
  • Python爬虫技术简介
    Python是一种广泛应用于网络爬虫的编程语言,它的简洁易读的语法、强大的数据处理能力和各种可用的第三方库,使得Python成为开发高效且功能强大的爬虫的首选语言。本篇博客将介绍Python爬虫的基础知识和一些常用的爬虫技术。一、Python爬虫技术介绍Python爬虫技术包括网页请求、HT......
  • Mac 中设置 python 默认版本
    Mac中设置python默认版本1.$sudovi~/.bashrc2.shell中输入aliaspython2='/Library/Frameworks/Python.framework/Versions/2.x/bin/python2.x'aliaspython3='/Library/Frameworks/Python.framework/Versions/3.x/bin/python3.3.重启终端或$source~/.bashrc......