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 初始化多维数组代码
Sep 06 Python
Python 不同对象比较大小示例探讨
Aug 21 Python
Python中的字典遍历备忘
Jan 17 Python
python 调用HBase的简单实例
Dec 18 Python
对numpy中的数组条件筛选功能详解
Jul 02 Python
Flask-Mail用法实例分析
Jul 21 Python
浅谈python的dataframe与series的创建方法
Nov 12 Python
python截取两个单词之间的内容方法
Dec 25 Python
Python多线程threading模块用法实例分析
May 22 Python
Python直接赋值、浅拷贝与深度拷贝实例分析
Jun 18 Python
twilio python自动拨打电话,播放自定义mp3音频的方法
Aug 08 Python
使用python绘制二维图形示例
Nov 22 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开发留言板的CRUD(增,删,改,查)操作
2012/04/19 PHP
一些php项目中比较通用的php自建函数的详解
2013/06/06 PHP
yii权限控制的方法(三种方法)
2015/12/28 PHP
Laravel框架集成UEditor编辑器的方法图文与实例详解
2019/04/17 PHP
javascript模块化是什么及其优缺点介绍
2013/09/02 Javascript
页面载入结束自动调用js函数示例
2013/09/23 Javascript
parentElement,srcElement的使用小结
2014/01/13 Javascript
setInterval与clearInterval的使用示例代码
2014/01/28 Javascript
JS+DIV+CSS实现的经典标签切换效果代码
2015/09/14 Javascript
javascript实现uploadify上传格式以及个数限制
2015/11/23 Javascript
简介EasyUI datagrid editor combogrid搜索框的实现
2016/04/01 Javascript
javascript数组去重常用方法实例分析
2017/04/11 Javascript
ionic2自定义cordova插件开发以及使用(Android)
2017/06/19 Javascript
vue awesome swiper异步加载数据出现的bug问题
2018/07/03 Javascript
监控微信小程序中的慢HTTP请求过程详解
2019/07/05 Javascript
es6 for循环中let和var区别详解
2020/01/12 Javascript
JS原型和原型链原理与用法实例详解
2020/02/05 Javascript
js实现跳一跳小游戏
2020/07/31 Javascript
详解Python中的__new__()方法的使用
2015/04/09 Python
Python IDLE 错误:IDLE''s subprocess didn''t make connection 的解决方案
2017/02/13 Python
Python+selenium实现截图图片并保存截取的图片
2018/01/05 Python
Python3环境安装Scrapy爬虫框架过程及常见错误
2019/07/12 Python
Jupyter Notebook打开任意文件夹操作
2020/04/14 Python
python图片合成的示例
2020/11/09 Python
通过HTML5规范搞定i、em、b、strong元素的区别
2017/03/04 HTML / CSS
使用HTML5 Geolocation实现一个距离追踪器
2018/04/09 HTML / CSS
什么是类的返射机制
2016/02/06 面试题
网上商城创业计划书范文
2014/01/31 职场文书
员工保密承诺书
2014/05/28 职场文书
医学专业毕业生推荐信
2014/07/12 职场文书
民族团结演讲稿范文
2014/08/27 职场文书
寝室长工作失责检讨书
2014/10/06 职场文书
入党介绍人意见怎么写
2015/06/03 职场文书
立春观后感
2015/06/18 职场文书
Python 批量下载阴阳师网站壁纸
2021/05/19 Python
Golang流模式之grpc的四种数据流
2022/04/13 Golang