• python讲解类的特殊成员方法


    class Dog(object):
    ''' 这个类是描述狗这个对象的'''
    def __init__(self,name):
    self.name = name

    @staticmethod#实际上跟类没有什么关系了。eat和类的关系截断了,只是类下面函数
    #静态方法:只是名义上归类管理,实际上在静态方法里访问不了类或实例中的任何属性
    def eat(self):
    print('%s is eating %s'%(self.name,'dd'))

    def __call__(self, *args, **kwargs):
    print("runing all",args,kwargs)

    def __str__(self):#__str__ 如果一个类中定义了__str__方法,那么在打印 对象 时,默认输出该方法的返回值
    return "DOG %s"%self.name
    d = Dog('testing')
    d(1,2,3,["name","age"])

    print(d)
    # print(Dog.__dict__)#类调用,打印类里面所有属性
    # print(d.__dict__)#打印所有实例属性,不包括类属性

    # print(Dog.__doc__)#显示描述信息
    # from day7.属性 import Flight
    # obj = Flight('test')
    # print(obj.__module__)#  __module__ 表示当前操作的对象在那个模块
    # print(obj.__class__)#  __class__ 表示当前操作的对象的类是什么
    #__init__ 构造方法,通过类创建对象时,自动触发执行
    #__del__析构方法,当对象在内存中被释放时,自动触发执行


    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()
    obj["name"] = "test"

    # result = obj['k1'] # 自动触发执行 __getitem__
    # obj['k2'] = 'alex' # 自动触发执行 __setitem__
    # del obj['k1']
  • 相关阅读:
    vue项目总结,所用到的技术点
    豆瓣电影个人项目总结
    博学谷项目总结,个人总结经验
    JavaScript数组的常用方法
    移动端base.css的内容,
    normalize.css可以对css初始化,不同浏览器可以统一初始样式
    jsp第十次作业
    jsp第九次作业
    jsp第八次作业
    jsp第七次作业
  • 原文地址:https://www.cnblogs.com/anhao-world/p/13308664.html
Copyright © 2020-2023  润新知