Python的常用魔法属性大全

魔法属性

  • __doc__ 查看类的描述信息
    格式:类.__doc __

  • __class__ 显示当前对象的类是谁
    格式:对象.__class __

  • __module__ 显示当前操作的对象所在的模块
    格式:对象.__module __

  • __new__ 创建对象时为对象分配空间,在初始化方法__init__之前被调用
    格式:def __new __ ():

  • __init__ 初始化方法
    格式:def __init __ ():

  • 构造方法:new 和__init__的组合

  • __del__当对象在内存中释放时自动执行

  • __call__ 对象() 或类()() 触发执行__call__ 方法

  • __dict__ 显示类或对象中的所有属性

  • __str__获取对象的描述时,默认输出该方法的返回值(字符串) print或"%d"% 变量名

  • __getitem__ 获取
    __setitem__ 设置
    __delitem__ 删除
    用于索引操作,如字典的使用

class Foo(object):

    def __getitem__(self, key):
        print('__getitem__', key)

    def __setitem__(self, key, value):
        print('__setitem__', key, value)

    def __delitem__(self, key):
        print('__delitem__', key)


obj = Foo()

result = obj['k1']      # 自动触发执行 __getitem__
obj['k2'] = 'zhangsan'   # 自动触发执行 __setitem__
del obj['k1']   # 自动触发执行 __delitem__
  • __getslice __ 获取
    __setslice __ 设置
    __delslice __ 删除
    用于索引操作,如列表的使用
class Foo(object):

    def __getslice__(self, i, j):
        print('__getslice__', i, j)

    def __setslice__(self, i, j, sequence):
        print('__setslice__', i, j)

    def __delslice__(self, i, j):
        print('__delslice__', i, j)

obj = Foo()

obj[-1:1]   # 自动触发执行 __getslice__
obj[0:1] = [11,22,33,44]    # 自动触发执行__setslice__ 列表切片可以直接设置值
del obj[0:2]    # 自动触发执行 __delslice__
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值