Python学习之路-22 (面向对象特殊成员)
类的特殊成员之call
#!/usr/bin/env python
# _*_coding:utf-8 _*_class SpecialMembers:# 类的构造方法def __init__(self):print("My Blog is Url: http://www.cnblogs.com/sjie0224")# 对象的构造方法def __call__(self):print("My Name is: Guniao")# 创建一个对象,并且执行类的构造方法
obj = SpecialMembers()# 执行对象的构造方法
obj()# 先执行类的构造方法,然后在执行对象的构造方法
SpecialMembers()()
输出
Guniao@Darker:~$ python3 /home/Guniao/文档/Python_code/sublime/Week06/Day04/s2.py My Blog is Url:
http://www.cnblogs.com/sjie0224
My Name is: Guniao My Blog is Url:
http://www.cnblogs.com/sjie0224
My Name
is: Guniao
类的特殊成员之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']
输出
Guniao@Darker:~$ python3 /home/Guniao/文档/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__
输出
Guniao@Darker:~$ python3 /home/Guniao/文档/Python_code/sublime/Week06/Day04/s2.py
slice(1, 3, None) <class 'slice'> __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 = "Guniao"self.Blog = "https://blog.Guniao.me"# 获取类中的成员
print(SpecialMembers.__dict__)# 创建一个对象
obj = SpecialMembers()# 获取对象中的成员
print(obj.__dict__)
输出
Guniao@Darker:~$ python3 /home/Guniao/文档/Python_code/sublime/Week06/Day04/s2.py
{'__weakref__': <attribute '__weakref__' of 'SpecialMembers' objects>, '__doc__': '\n 类的注释\n ', '__module__': '__main__', '__dict__': <attribute '__dict__' of 'SpecialMembers' objects>, '__init__': <function SpecialMembers.__init__ at 0x7ff2af2d7598>} {'Blog': 'https://blog.Guniao.me', 'Name': 'Guniao'}
类的特殊成员之iter
一个对象如果可以被for
循环迭代时,说明对象中又__iter__
方法,且方法中有yield
值。
#!/usr/bin/env python
# _*_coding:utf-8 _*_class SpecialMembers:def __iter__(self):yield 1yield 2yield 3# 创建一个对象
obj = SpecialMembers()# 如果执行for循环对象时,自动会执行对象的__iter__方法,此时的__iter__就是一个生成器
for i in obj:print(i)
输出
Guniao@Darker:~$ python3 /home/Guniao/文档/Python_code/sublime/Week06/Day04/s2.py
1
2
3
转载于:https://www.cnblogs.com/sjie0224/articles/7562745.html
Python学习之路-22 (面向对象特殊成员)相关推荐
- Python学习之路9☞面向对象的程序设计
Python学习之路9☞面向对象的程序设计 一 面向对象的程序设计的由来 见概述:http://www.cnblogs.com/linhaifeng/articles/6428835.html 二 什 ...
- Python学习之路_day_25(面向对象之封装/多态/组合)
一.组合 什么是组合: 组合指的是某一个对象拥有一个属性,该属性的值是另外一个类的对象. 2. 为何要用组合 通过为某一个对象添加属性(属性的值是另外一个类的对象)的方式,可以间接地将两个类关联/整合 ...
- Python学习之路—2018/6/20
Python学习之路-2018/6/20 1.模板语法之变量 views.py def index(request):import datetimes="gyq"l=[1,2,3] ...
- Python学习之路5☞文件处理
Python学习之路5☞文件处理 一.文件处理流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 1 正趣果上果 2 Interesting fruit fruit 3 4 ...
- python学习之路0x00
Python学习之路0x00 在学习python之前,要知道什么是python? python是一种跨平台的计算机程序设计语言.是一种面向对象的动态类型语言,与c语言不同, c语言要编译后才能执行.而 ...
- 我的Python学习之路(一)_Mr_Ouyang
我的Python学习之路(一)_Mr_Ouyang 笔者按: 本文从18:55开始写作,至19:38中断,又从21:12始继续,至23:22写就. 共计耗时113分钟,总字数9081字,约80.4字/ ...
- Python学习之路【第一篇】-Python简介和基础入门
1.Python简介 1.1 Python是什么 相信混迹IT界的很多朋友都知道,Python是近年来最火的一个热点,没有之一.从性质上来讲它和我们熟知的C.java.php等没有什么本质的区别,也是 ...
- python之路 mysql 博客园_教为学:Python学习之路(二):MySQLdb的几种安装方式,以及用Python测试连接MySql...
教为学:Python学习之路(二):MySQLdb的几种安装方式,以及用Python测试连接MySql Easy_install安装MySQLdb 很简单,以至于我不晓得该怎么说.一句话. sodu ...
- Python学习之路—2018/7/14
Python学习之路-2018/7/12 3.功能开发 3.3 设计博客首页 博客首页中最重要的就是中间的文章区域,所以我首先把文章区域设计出来,一开始并没有数据,如果用orm添加或者直接在数据库添加 ...
- python 学习之路开始了
python 学习之路开始了.....记录点点滴滴.... 转载于:https://www.cnblogs.com/chobit/p/6163287.html
最新文章
- noip2018——题解总结
- Linux服务器网页显示乱码
- 十三五乐山全力推进智慧城市和新能源汽车等项目
- EAGLView介绍
- GTK+开发环境搭建(Centos+Netbeans)
- 如何测量太阳距离地球的距离
- php 面向对象的理解,我对php面向对象的细微理解
- UITextField对字符串的个数限制
- 第十二章 DOM2和DOM3
- SCPPO(三):禅道的使用—项目管理员、开发等人员
- 关于如何取消萤石云视频加密
- EBS开发_创建销售人员API
- 移动端网页点击链接出现蓝色背景如何解决
- 法国电子与计算机信息工程学校排名,法国工程学院的十大排名情况
- 如何设置浏览器标签图标
- MYSQL登录错误:mysqladmin: connect to server at 'localhost' failed acess denied for user 'root'@'localhos
- 华三防火墙配置端口地址转换_H3C SecPath 防火墙设置之端口映射(命令)
- 微型计算机celeron是,谁是赛扬D最佳搭档?微型计算机告诉你
- [实变函数]3.3 可测集类
- csgo好友服务器延迟,CSGO国服新手入门-与好友一起游戏