• 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']
  • 相关阅读:
    加载与隐藏显示
    Task 自我总结认知
    修复SDF数据库引擎C#代码
    Windows防火墙开启后 ping不通了 的解决方案
    C# 串口
    WPF DataGrid中单元格运用Combobox的示例
    组合模式
    适配器模式
    【转载】.net 动态代理
    python数组操作
  • 原文地址:https://www.cnblogs.com/anhao-world/p/13308664.html
Copyright © 2020-2023  润新知