zoukankan      html  css  js  c++  java
  • ###类的特殊成员方法

    ###类的特殊成员方法
    #__call__ 对象后面加括号,触发执行。
    ##注:构造方法的执行是由创建对象触发的,即:对象 = 类名():而对于__call__方法的执行是由对象后加括号触发的,即:对象()或者类()()
    class Dog (object):
    def __init__(self,name,addr):
    self.name = name
    self.addr = addr
    def blak(self):
    print("%s 叫声很好听哦。。。"%self.name)
    def __call__(self, *args, **kwargs):
    print(args,kwargs)
    def __str__(self):
    return "<obj:%s>"%self.name


    dl = Dog("Caicai","22")
    dl(1,2,3,4,name="Caicai")

    ###__dict__查看类或对象中的所有成员
    print(Dog.__dict__)###查看类中的所有对象方法
    ##输出:{'__module__': '__main__', '__init__': <function Dog.__init__ at 0x057F6C90>, 'blak': <function Dog.blak at 0x057F6C48>, '__call__': <function Dog.__call__ at 0x057F6C00>, '__dict__': <attribute '__dict__' of 'Dog' objects>, '__weakref__': <attribute '__weakref__' of 'Dog' objects>, '__doc__': None}
    print(dl.__dict__)##获取当前对象的成员
    ##输出:{'name': 'Caicai', 'addr': '22'}


    ###__str__如果一个类中定义了__str__方法,那么在打印对象时,默认输出该方法的返回值。
    print(dl)
    ##输出:<obj:Caicai>

    ###__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)

    obi = Foo()










    以上内容作为课堂笔记,如有雷同,请联系于我
  • 相关阅读:
    LeetCode Array Easy 414. Third Maximum Number
    LeetCode Linked List Medium 2. Add Two Numbers
    LeetCode Array Easy 283. Move Zeroes
    LeetCode Array Easy 268. Missing Number
    LeetCode Array Easy 219. Contains Duplicate II
    LeetCode Array Easy 217. Contains Duplicate
    LeetCode Array Easy 189. Rotate Array
    LeetCode Array Easy169. Majority Element
    LeetCode Array Medium 11. Container With Most Water
    LeetCode Array Easy 167. Two Sum II
  • 原文地址:https://www.cnblogs.com/ArtisticMonk/p/8984277.html
Copyright © 2011-2022 走看看