python中面向对象的特殊成员_Python面向对象特殊成员

类的特殊成员之call

#!/usr/bin/env python

# _*_coding:utf-8 _*_

class SpecialMembers:

# 类的构造方法

def __init__(self):

print("My Blog is Url: http://yw666.blog.51cto.com")

# 对象的构造方法

def __call__(self):

print("My Name is: Yangwen")

# 创建一个对象,并且执行类的构造方法

obj = SpecialMembers()

# 执行对象的构造方法

obj()

# 先执行类的构造方法,然后在执行对象的构造方法

SpecialMembers()()

输出

yangwen@Darker:~$ python3 /home/yangwen/文档/Python_code/sublime/Week06/Day04/s2.py

My Blog is Url: http://yw666.blog.51cto.com

My Name is: Yangwen

My Blog is Url: http://yw666.blog.51cto.com

My Name is: Yangwen

类的特殊成员之getitem、setitem、delitem

#!/usr/bin/env python

# _*_coding:utf-8 _*_

class SpecialMembers:

# 当执行obj['value']的时候就会自动执行__getitem__方法,并且把对象括号内的值当做__getitem__的值

def __getitem__(self, item):

print(item)

def __setitem__(self, key, value):

print(key, value)

def __delitem__(self, key):

print(key)

# 创建一个对象

obj = SpecialMembers()

# 自动执行__getitem__方法

obj['value']

# 自动执行__setitem__方法

obj['k1'] = "values"

# 自动执行__delitem__方法

del obj['key']

输出

ansheng@Darker:~$ python3 /home/yangwen/文档/Python_code/sublime/Week06/Day04/s2.py

value

k1 values

key

特殊的

#!/usr/bin/env python

# _*_coding:utf-8 _*_

class SpecialMembers:

# 当执行obj['value']的时候就会自动执行__getitem__方法,并且把对象括号内的值当做__getitem__的值

def __getitem__(self, item):

print(item, type(item), "__getitem__")

def __setitem__(self, key, value):

print(key, value)

def __delitem__(self, key):

print(key)

# 创建一个对象

obj = SpecialMembers()

# 自动执行__getitem__方法

obj[1:3] # __getslice__/__getitem__

# 自动执行__setitem__方法

obj[1:3] = [11, 22, 33] # __setslice__/__setitem__

# 自动执行__delitem__

del obj[1:3] # __delslice__/__delitem__

输出

yangwen@Darker:~$ python3 /home/yangwen/文档/Python_code/sublime/Week06/Day04/s2.py

slice(1, 3, None) __getitem__

slice(1, 3, None) [11, 22, 33]

slice(1, 3, None)

类的特殊成员之dict

获取类或对象中的所有成员

#!/usr/bin/env python

# _*_coding:utf-8 _*_

class SpecialMembers:

"""

类的注释

"""

def __init__(self):

self.Name = "Ansheng"

self.Blog = "http://yw666.blog.51cto.com"

# 获取类中的成员

print(SpecialMembers.__dict__)

# 创建一个对象

obj = SpecialMembers()

# 获取对象中的成员

print(obj.__dict__)

输出

yangwen@Darker:~$ python3 /home/yangwen/文档/Python_code/sublime/Week06/Day04/s2.py

{'__weakref__': , '__doc__': '\n 类的注释\n ', '__module__': '__main__', '__dict__': , '__init__': }

{'Blog': 'http://yw666.blog.51cto.com', 'Name': 'Yangwen'}

类的特殊成员之iter

一个对象如果可以被for循环迭代时,说明对象中又__iter__方法,且方法中有yield值。

#!/usr/bin/env python

# _*_coding:utf-8 _*_

class SpecialMembers:

def __iter__(self):

yield 1

yield 2

yield 3

# 创建一个对象

obj = SpecialMembers()

# 如果执行for循环对象时,自动会执行对象的__iter__方法,此时的__iter__就是一个生成器

for i in obj:

print(i)

输出

yangwen@Darker:~$ python3 /home/yangwen/文档/Python_code/sublime/Week06/Day04/s2.py

1

2

3

以上所述是小编给大家介绍的Python面向对象特殊成员,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/513274.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Scheduled SQL: SLS 大规模日志上的全局分析与调度

简介: 本文总结了大规模日志全局分析的需求,讨论SLS上现有的典型分析方案,并延伸到 SLS 原生数据处理方案,介绍 Schedueld SQL 功能与最佳实践。 大规模日志全局分析的需求 数据大规模与时效性 基于时间的数据(日志…

matlab制作以太网数据接收上位机_3D激光扫描仪设计及数据处理

本文内容转载自《电子技术应用》2019年第10期,版权归《电子技术应用》编辑部所有。段清明,王凡,徐琳琳,全文俊吉林大学仪器科学与电气工程学院摘要:利用2D激光雷达配合云台装置,设计了一种3D激光扫描仪作为…

跨平台(windows+linux)的线程辅助程序,跨平台(Windows+Linux)的Socket通讯程序(二)—结构...

上一篇"跨平台(WindowsLinux)的Socket通讯程序"给出了Socket通讯底层的一些函数的包装方法/类,同时屏蔽了操作系统(Windows/Linux)的不同。上一篇只是对通讯底层方法的封装,并没用涉及应用,这一篇将基于上一篇,并结合&q…

数据的“敏捷制造”,DataWorks一站式数据开发治理范式演进

简介: 企业大数据技术发展至今,历经了两次蜕变。第一次蜕变从最初的“小作坊”解决大数据问题,到后来企业用各类大数据技术搭建起属于自己的“大平台”,通过平台化的能力完成数据生产力的升级。 第二次蜕变让大数据从“大平台”向…

全新的 Fragment 通信方式

作者 | tech-bus.丹卿来源 | 程序员巴士前言就在前段时间,Google 推出了 Fragment Result API 和 Activity Results API,用来取代之前的 Activity 和 Fragment 之间通信方式的不足,大家可以前往看看都有哪些更新:https://medium.c…

数据传输完整性_电缆监测数据传输系统分析与设计

电缆线路是重要的输电方式,对电缆线路进行监测是保证电缆线路正常工作的重要的条件,研究人员利用嵌入式系统设计了电缆监测数据传输系统。该系统以CAN通信和嵌入式以太网络技术为核心,实现了对电缆及其沟道的实时监测、状态显示及预报警功能&…

大型企业多账号管理“安全心法”

简介: 云上多账号环境下的网络统一管理,是大型分支型企业网络安全防护的必经之路。无论是外企入华、国内企业出海,还是本土集团型企业规模化成长,云上统一网络安全管控与整体安全态势感知,都可以拉齐企业账号间安全水位…

苹果将于 2025 年推出的 Apple Car 长什么样?

整理 | 孙胜出品 | CSDN(ID:CSDNnews)据国外媒体报道,苹果公司预计将于2025年推出一款全新的自动驾驶汽车,旨在实现真正意义上的无人驾驶。报道称,基于自动驾驶的理念,苹果理想的汽车没有方向盘…

阿里云中间件首席架构师李小平:云原生实践助力企业高效创新

简介: 通过云原生技术,真正为企业带来更多的业务价值,助力企业整体的业务创新。 作者:李小平 前天我参加了信通院的云原生产业大会,在会场上非常感慨,参加会议的企业非常多,并且来自于各行各业…

ubuntu linux固定ip设置,Ubuntu 配置静态IP

Ubuntu是属于Debian系衍生的发行版目录结构和RedHat系Linux发行版有所不同,但个人认为RedHat系的目录结构会更加接近Unix风格,相对这些各种Linux发行版遇到不懂的还是先查查手册Wiki,虽然我玩过很多发行版比如Opensuse,Linux mint,elementary os,Puppy L…

cv曲线面积的意义_几何直觉的魅力:sinx曲线下的面积原理是如此的美妙

用“曲线下的面积”来描述积分,就像用一串单词来描述一本书。正弦函数的积分是其曲线下的面积。几何直觉就是:“正弦的积分是沿圆周路径的水平距离。”这句话第一次听说感觉比较抽象,当你理解了就会觉得它非常的美妙一般的思维模式求正弦函数的积分就是&…

OpenInfra 十一年:OpenStack 部署规模超 2500 万计算核心

后疫情时代下,产生海量在线需求,越来越多金融、政府、教育、通信和医疗保健等上云业务需依赖现代云基础设施来正常运行。其中开源提供了一种更具成本效益的开发方式,据最新《2021 年度 Octoverse 报告》显示,2021 年 GitHub 开发者…

集群镜像:实现高效的分布式应用交付

简介: Docker 解决了单个容器的镜像化问题,而 sealer 通过把整个集群打包,实现了分布式软件的 Build Share Run。 作者 | fanux.中弈 什么是集群镜像 顾名思义,和操作系统 .iso 镜像或 Docker 镜像类似,集群镜像是用一…

python 图例颜色_python – 来自颜色字典的matplotlib.pyplot scatterplot图例

实现这一目标的一种方法:D_id_color {A: uorchid, B: udarkcyan, C: ugrey, D: udodgerblue, E: uturquoise, F: udarkviolet}x_coordinates [1,2,3,4,5,6] # Added missing datapointy_coordinates [3,3,3,3,3,3] # Added missing datapointsize_map [50,100,2…

linux远程执行迷路,linux操作系统基础

Linux的基本原则1.由目的单一的小程序组成:组合小程序完成复杂任务2.一切皆文件3.尽量避免捕获用户接口4.配置文件保存为纯文本格式linux操作系统基础及常用命令在bash下一般管理员是#号,其他用户是$命令:命令 选项 参数选项:是用…

uni app input添加获取验证码按钮_uni-app跨平台框架对微信小程序的无障碍支持探索...

uni-app是一个使用Vue.js开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、H5、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉/淘宝)、快应用等多个平台。今天,我们来体验uni-app对微信小程序的无障…

比开源快30倍的自研SQL Parser设计与实践

简介: SQL作为一种领域语言,最早用于关系型数据库,方便管理结构化数据;SQL由多种不同的类型的语言组成,包括数据定义语言,数据控制语言、数据操作语言;各数据库产品都有不同的声明和实现&#x…

SLS控制台内嵌操作指南

简介: SLS控制台内嵌操作指南 一、机制 详见:https://help.aliyun.com/document_detail/74971.html 二、操作 2.1 子账号操作(主账号身份操作) 登陆ram控制台,创建子账号。给子账号授予AliyunSTSAssumeRoleAccess权…

python vlookup 模糊_如何用python写excel中的vlookup函数?

1.背景Vlookup 函数,可以算是一个数据专员必须要会使用的基本函数了,确实很好用。但是你可能会注意到,Excel 一旦数据量过大,打开都费劲了,何况打开后,你还要输入公式计算,就更费劲了&#xff0…

装linux服务器进去配置界面,在CentOS 8 Linux上安装和配置SuiteCRM的步骤

本文介绍在CentOS 8 Linux服务器上安装和配置SuiteCRM的详细步骤:更新系统、安装PHP、安装MariaDB和Nginx Web服务器、安装SuiteCRM、配置SuiteCRM Web访问界面。SuiteCRM是由SalesAgility团队开发和维护的开源企业级CRM应用程序,该产品最初是SugarCRM社…