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()










    以上内容作为课堂笔记,如有雷同,请联系于我
  • 相关阅读:
    LC.225. Implement Stack using Queues(using two queues)
    LC.232. Implement Queue using Stacks(use two stacks)
    sort numbers with two stacks(many duplicates)
    LC.154. Find Minimum in Rotated Sorted Array II
    LC.81. Search in Rotated Sorted Array II
    LC.35.Search Insert Position
    前后端分离:(一)
    Redis基本使用(一)
    GIT篇章(二)
    GIT篇章(一)
  • 原文地址:https://www.cnblogs.com/ArtisticMonk/p/8984277.html
Copyright © 2011-2022 走看看