Python面向对象特殊成员

发布时间 - 2026-01-11 00:48:06    点击率:

类的特殊成员之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入门篇之面向对象  # Python 面向对象 成员的访问约束  # 简述Python中的面向对象编程的概念  # python面向对象_详谈类的继承与方法的重载  # 举例讲解Python面向对象编程中类的继承  # 关于Python面向对象编程的知识点总结  # Python面向对象class类属性及子类用法分析  # Python面向对象之静态属性、类方法与静态方法分析  # Python面向对象之接口、抽象类与多态详解  # Python面向对象之反射/自省机制实例分析  # Python面向对象之类和对象实例详解  # Python面向对象程序设计OOP入门教程【类  # 实例  # 继承  # 重载等】  # 创建一个  # 文档  # 就会  # 小编  # 象中  # 括号内  # 在此  # 中有  # 给大家  # 或对  # 所述  # 给我留言  # 中又  # 感谢大家  # 类中  # 疑问请  # 有任何  # 迭代  # cto 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel的.env文件有什么用_Laravel环境变量配置与管理详解  Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程  怎样使用JSON进行数据交换_它有什么限制  如何用免费手机建站系统零基础打造专业网站?  Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】  网站制作价目表怎么做,珍爱网婚介费用多少?  javascript中对象的定义、使用以及对象和原型链操作小结  详解jQuery停止动画——stop()方法的使用  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】  Laravel storage目录权限问题_Laravel文件写入权限设置  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  javascript如何操作浏览器历史记录_怎样实现无刷新导航  google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤  企业网站制作这些问题要关注  Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  如何快速打造个性化非模板自助建站?  Python自动化办公教程_ExcelWordPDF批量处理案例  IOS倒计时设置UIButton标题title的抖动问题  JavaScript如何操作视频_媒体API怎么控制播放  Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理  使用豆包 AI 辅助进行简单网页 HTML 结构设计  如何快速查询网站的真实建站时间?  智能起名网站制作软件有哪些,制作logo的软件?  Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)  如何在阿里云高效完成企业建站全流程?  标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南  Laravel如何处理和验证JSON类型的数据库字段  Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  如何撰写建站申请书?关键要点有哪些?  浅述节点的创建及常见功能的实现  深入理解Android中的xmlns:tools属性  Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全  Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案  如何正确选择百度移动适配建站域名?  如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】  高端建站三要素:定制模板、企业官网与响应式设计优化  在线制作视频网站免费,都有哪些好的动漫网站?  Android Socket接口实现即时通讯实例代码  Java垃圾回收器的方法和原理总结  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  如何挑选最适合建站的高性能VPS主机?  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  javascript中的try catch异常捕获机制用法分析  怎么用AI帮你设计一套个性化的手机App图标?  香港服务器租用费用高吗?如何避免常见误区?