打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
一文讲清Python编程语言中的特殊成员和应用场景

Python 面向对象中的特殊成员以及应用场景是一个关于 Python 编程语言的常见问题,它涉及到 Python 中类和对象的一些特殊的属性和方法,以及它们的作用和用法。根了以下的一些特殊成员和应用场景:

  • __doc__:这是一个类或对象的文档字符串,用于描述类或对象的信息,可以通过 ClassName.__doc__ 或 obj.__doc__ 来访问。例如,range.__doc__ 可以显示 range 类的用法和参数。
  • __init__:这是一个类的构造函数,用于初始化类的实例,当创建一个类的对象时,会自动调用该方法。该方法的第一个参数是 self,表示类的实例本身,后面的参数是传递给类的参数。例如,class Employee: def __init__(self, name, salary): self.name = name; self.salary = salary 可以定义一个 Employee 类,接受 name 和 salary 两个参数,并将它们赋值给实例的属性。
  • __call__:这是一个类的可调用方法,用于使类的实例可以像函数一样被调用,当在类的实例后面加括号时,会触发该方法的执行。该方法的第一个参数是 self,表示类的实例本身,后面的参数是传递给实例的参数。例如,class Adder: def __call__(self, x, y): return x + y 可以定义一个 Adder 类,接受 x 和 y 两个参数,并返回它们的和。adder = Adder(); adder(1, 2) 可以返回 3。
  • __dict__:这是一个类或对象的字典属性,用于存储类或对象的所有成员,包括字段,方法,属性等。可以通过 ClassName.__dict__ 或 obj.__dict__ 来访问。例如,Employee.__dict__ 可以显示 Employee 类的所有成员,emp1.__dict__ 可以显示 Employee 类的一个对象 emp1 的所有成员。
  • __str__:这是一个类的字符串方法,用于定义类的实例的字符串表示,当使用 print 或 str 函数对类的实例进行输出时,会默认调用该方法的返回值。该方法的第一个参数是 self,表示类的实例本身,该方法应该返回一个字符串。例如,class Employee: def __str__(self): return 'Name: {}, Salary: {}'.format(self.name, self.salary) 可以定义 Employee 类的实例的字符串表示,print(emp1) 可以输出 Name: Zara, Salary: 2000。
  • __getitem__,__setitem__,__delitem__:这是一组类的索引方法,用于实现类的实例的索引操作,如字典或列表。当使用 obj[key] 对类的实例进行获取,设置或删除值时,会分别调用这些方法。这些方法的第一个参数是 self,表示类的实例本身,第二个参数是 key,表示索引的键。__getitem__ 方法应该返回对应的值,__setitem__ 方法应该设置对应的值,__delitem__ 方法应该删除对应的值。例如,class Dict: def __init__(self): self.data = {} def __getitem__(self, key): return self.data[key] def __setitem__(self, key, value): self.data[key] = value def __delitem__(self, key): del self.data[key] 可以定义一个 Dict 类,实现字典的索引操作,d = Dict(); d['a'] = 1; print(d['a']); del d['a'] 可以分别设置,获取和删除键为 'a’ 的值。
  • __new__:这是一个类的静态方法,用于创建类的实例,它是在 __init__ 方法之前被调用的。该方法的第一个参数是 cls,表示类本身,后面的参数是传递给类的参数。该方法应该返回一个类的实例。该方法一般不需要重写,除非需要控制类的实例的创建过程。例如,class Singleton: def __new__(cls, *args, **kwargs): if not hasattr(cls, '_instance'): cls._instance = super().__new__(cls, *args, **kwargs) return cls._instance 可以定义一个 Singleton 类,实现单例模式,只有一个类的实例存在。
  • __del__:这是一个类的析构方法,用于销毁类的实例,当类的实例被垃圾回收或 del 语句删除时,会自动调用该方法。该方法的第一个参数是 self,表示类的实例本身。该方法一般不需要重写,除非需要在类的实例被销毁时执行一些操作。例如,class File: def __init__(self, name): self.name = name; self.file = open(name, 'r') def __del__(self): self.file.close(); print('File closed') 可以定义一个 File 类,实现文件的打开和关闭,f = File('test.txt'); del f 可以关闭文件并输出 File closed。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
python基础(23):面向过程与面向对象的优劣、初识面向对象
盘点Python 面向对象编程最容易被忽视的知识点
python核心知识点1
python学习入门细节知识点
day25 初始面向对象
设计模式 | Catalog设计模式,抵御业务方需求变动
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服