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画图学习入门教程
Jul 01 Python
Python利用ElementTree模块处理XML的方法详解
Aug 31 Python
对Python的zip函数妙用,旋转矩阵详解
Dec 13 Python
Python3列表内置方法大全及示例代码小结
May 10 Python
Python 使用 PyMysql、DBUtils 创建连接池提升性能
Aug 14 Python
Python学习笔记之字符串和字符串方法实例详解
Aug 22 Python
Django框架HttpResponse对象用法实例分析
Nov 01 Python
PyTorch学习:动态图和静态图的例子
Jan 06 Python
Python OrderedDict字典排序方法详解
May 21 Python
Numpy 多维数据数组的实现
Jun 18 Python
如何Tkinter模块编写Python图形界面
Oct 14 Python
python基础学习之递归函数知识总结
May 26 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 中文处理函数集合
2008/08/27 PHP
php中serialize序列化与json性能测试的示例分析
2013/04/27 PHP
php向js函数传参的几种方法
2014/08/10 PHP
php常用字符串比较函数实例汇总
2014/11/24 PHP
PHP处理大量表单字段的便捷方法
2015/02/07 PHP
php判断输入是否是纯数字,英文,汉字的方法
2015/03/05 PHP
PHP中list()函数用法实例简析
2016/01/08 PHP
php图片合成方法(多张图片合成一张)
2017/11/25 PHP
PHP实现简单计算器小程序
2020/08/28 PHP
JavaScript Cookie显示用户上次访问的时间和次数
2009/12/08 Javascript
几种延迟加载JS代码的方法加快网页的访问速度
2013/10/12 Javascript
JS对象与json字符串格式转换实例
2014/10/28 Javascript
JavaScript中window.open用法实例详解
2015/04/15 Javascript
JS根据浏览器窗口大小实时动态改变网页文字大小的方法
2016/02/25 Javascript
vue中使用localstorage来存储页面信息
2017/11/04 Javascript
Vue2.0设置全局样式(less/sass和css)
2017/11/18 Javascript
微信小程序radio组件使用详解
2018/01/31 Javascript
vue插槽slot的理解和使用方法
2019/04/03 Javascript
vue 使用axios 数据请求第三方插件的使用教程详解
2019/07/05 Javascript
vue实现购物车小案例
2019/09/27 Javascript
浅析vue-cli3配置webpack-bundle-analyzer插件【推荐】
2019/10/23 Javascript
Vue基础配置讲解
2019/11/29 Javascript
使用原生JS实现滚轮翻页效果的示例代码
2020/05/31 Javascript
微信小程序实现页面监听自定义组件的触发事件
2020/11/01 Javascript
[55:45]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第三场 8.24
2019/09/10 DOTA
Python写的Socks5协议代理服务器
2014/08/06 Python
创建Shapefile文件并写入数据的例子
2019/11/26 Python
简单了解pytest测试框架setup和tearDown
2020/04/14 Python
Myholidays美国:在线旅游网站
2019/08/16 全球购物
学期自我鉴定
2013/11/04 职场文书
酒店总经理工作职责
2013/12/13 职场文书
医药营销个人求职信
2014/04/12 职场文书
素质教育标语
2014/06/27 职场文书
python 统计代码耗时的几种方法分享
2021/04/02 Python
用Python制作灯光秀短视频的思路详解
2021/04/13 Python
angular4实现带搜索的下拉框
2022/03/25 Javascript