Python面向对象特殊成员


Posted in Python onApril 24, 2017

类的特殊成员之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) <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 = "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__': <attribute '__weakref__' of 'SpecialMembers' objects>, '__doc__': '\n  类的注释\n  ', '__module__': '__main__', '__dict__': <attribute '__dict__' of 'SpecialMembers' objects>, '__init__': <function SpecialMembers.__init__ at 0x7ff2af2d7598>}
{'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面向对象特殊成员,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python实现的一个找零钱的小程序代码分享
Aug 25 Python
Python编写百度贴吧的简单爬虫
Apr 02 Python
Hadoop中的Python框架的使用指南
Apr 22 Python
Python中处理字符串之endswith()方法的使用简介
May 18 Python
python实现下载指定网址所有图片的方法
Aug 08 Python
Python中的左斜杠、右斜杠(正斜杠和反斜杠)
Aug 30 Python
Python3.6通过自带的urllib通过get或post方法请求url的实例
May 10 Python
python中实现字符串翻转的方法
Jul 11 Python
分析python请求数据
Aug 19 Python
python消费kafka数据批量插入到es的方法
Dec 27 Python
对django xadmin自定义菜单的实例详解
Jan 03 Python
pytorch实现focal loss的两种方式小结
Jan 02 Python
Python解惑之整数比较详解
Apr 24 #Python
Python解惑之True和False详解
Apr 24 #Python
Python新手入门最容易犯的错误总结
Apr 24 #Python
Python正则抓取新闻标题和链接的方法示例
Apr 24 #Python
Python的爬虫框架scrapy用21行代码写一个爬虫
Apr 24 #Python
fastcgi文件读取漏洞之python扫描脚本
Apr 23 #Python
批量获取及验证HTTP代理的Python脚本
Apr 23 #Python
You might like
PHP查询数据库中满足条件的记录条数(两种实现方法)
2013/01/29 PHP
兼容PHP和Java的des加密解密代码分享
2014/06/26 PHP
php中把美国时间转为北京时间的自定义函数分享
2014/07/28 PHP
PHP Callable强制指定回调类型的方法
2016/08/30 PHP
thinkPHP5框架自定义验证器实现方法分析
2018/06/11 PHP
Smarty缓存机制实例详解【三种缓存方式】
2019/07/20 PHP
javascript jQuery插件练习
2008/12/24 Javascript
jquery toolbar与网页浮动工具条具体实现代码
2014/01/12 Javascript
用js的document.write输出的广告无阻塞加载的方法
2014/06/05 Javascript
js+css实现导航效果实例
2015/02/10 Javascript
JavaScript数据库TaffyDB用法实例分析
2015/07/27 Javascript
JS实现仿苹果底部任务栏菜单效果代码
2015/08/28 Javascript
jquery实现网页的页面平滑滚动效果代码
2015/11/02 Javascript
你有必要知道的25个JavaScript面试题
2015/12/29 Javascript
jQuery javascript获得网页的高度与宽度的实现代码
2016/04/26 Javascript
Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
2016/05/23 Javascript
JavaScript实现多重继承的方法分析
2018/01/09 Javascript
浅谈React的最大亮点之虚拟DOM
2018/05/29 Javascript
js中Object.defineProperty()方法的不详解
2018/07/09 Javascript
vuex根据不同的用户权限展示不同的路由列表功能
2019/09/20 Javascript
VUE兄弟组件传值操作实例分析
2019/10/26 Javascript
Vue实现Header渐隐渐现效果的实例代码
2020/11/05 Javascript
python中range()与xrange()用法分析
2016/09/21 Python
基于Python socket的端口扫描程序实例代码
2018/02/09 Python
解决Django生产环境无法加载静态文件问题的解决
2019/04/23 Python
Django学习笔记之为Model添加Action
2019/04/30 Python
Python循环中else,break和continue的用法实例详解
2019/07/11 Python
Python基于network模块制作电影人物关系图
2020/06/19 Python
CSS3中currentColor关键字的妙用
2016/02/27 HTML / CSS
仿CSDN Blog返回页面顶部功能实现原理及代码
2013/06/30 HTML / CSS
葡萄牙鞋子品牌:Fair
2016/12/10 全球购物
哈弗商学院毕业生求职信
2014/02/26 职场文书
乔迁之喜主持词
2014/03/27 职场文书
学雷锋月活动总结
2014/04/25 职场文书
房屋出租协议书范本(标准版)
2014/09/24 职场文书
2014年前台文员工作总结
2014/12/08 职场文书