zoukankan      html  css  js  c++  java
  • Python 中类都有哪些魔术方法

    魔术方法

    __init__:方法作用是给对象的属性进行赋值

    __str__:print(keyou) 直接打印对象的时候会调用 __str__ 方法,一定只能返回字符串

    __call__:(译:靠)对象.()自动调用,位置参数被args接收为元祖,关键字参数被kwargs接收

    _getitem__:对象.[]会默认调用__getitem__方法,可以通过数字索引取值、切片操作

    class PersonInfo:
        def __init__(self, name, age):
            # __init__ 方式作用是给对象的属性进行赋值
            self.name = name
            self.age = age
            self.skills = []
    
        def add_skill(self, item):
            self.skills.append(item)
    
        def __str__(self):
            # print(keyou) 直接打印对象的时候会调用 __str__ 方法,一定只能返回字符串
            return f"[{self.name},{self.age}]"
    
        def __call__(self, *args, **kwargs):
            # (译:靠)对象.()自动调用,位置参数被args接收为元祖,关键字参数被kwargs接收
            pass
    
        def __getitem__(self, item):
            # 对象.[]会默认调用__getitem__方法,可以通过数字索引取值、切片操作
            return self.skills[item]
    
    
    # init
    keyou = PersonInfo("小明", 17)
    # str
    print(keyou)
    # 对象.()
    keyou("非常帅", True, sex="", score=50)
    
    # getitem,添加技能,在切片
    keyou.add_skill("会Python")
    keyou.add_skill("会吹牛")
    keyou.add_skill("会撞壁")
    print(keyou.skills)     # 结果:['会Python', '会吹牛', '会撞壁']
    print(keyou[0:2:1])         # 结果:['会Python', '会吹牛']

    *******请大家尊重原创,如要转载,请注明出处:转载自:https://www.cnblogs.com/shouhu/,谢谢!!******* 

  • 相关阅读:
    python 笔记8
    python笔记6
    python笔记5
    python笔记4
    python笔记3
    python课程2
    cobbler 坑爹指南
    hadoop filesystem 删除文件 复制文件 重命名文件
    hadoop 文件 复制 移动 FileUtil.copy
    soinn
  • 原文地址:https://www.cnblogs.com/shouhu/p/12743593.html
Copyright © 2011-2022 走看看