zoukankan      html  css  js  c++  java
  • python 类特殊成员

    class Foo:
        def __init__(self,age):
            self.age=age
            print('init')
        def __call__(self):
            print('call')   
        def __int__(self):
            return 123
        def __str__(self):
            return 'foo'
        def __add__(self,other):
            return self.age+other.age
        def __del__(self):##gc回收foo销毁
            print('foo is over')
        def __getitem__(self,item):
            return item+10
        def __setitem__(self,key,value):
            print(key,value)   
        def __delitem__(self,key):
            print(key)    
    
    
    f=Foo(12)##调用init
    f1=Foo(13)
    f()##调用call
    print(int(f))##调用int
    print(f)##调用str
    print(f+f1)##两个对象相加,会自动执行第一个对象的add方法 ,并且将第二个对象做为参数传递进去 
    print(f.__dict__ )#将对象的成员以字典类型全部显示   Foo.__dict__将类的所有成员和方法以字典类型显示    
    print(f[10])##调用getitem并将10传给item
    f[10]=23#调用setitem将10传给10 23传给value
    del f[10]##调用delitem

    结果:

    init
    init
    call
    123
    foo
    25
    {'age': 12}
    20
    (10, 23)
    10
  • 相关阅读:
    【转】c++继承中的内存布局
    Google 开源项目风格指南
    常见面试题
    PHP7.1中使用openssl替换mcrypt
    phpunit实践笔记
    PHP的错误处理
    CI的扩展机制
    #CI的MVC实现
    Laravel中的队列处理
    laravel的模块化是如何实现的
  • 原文地址:https://www.cnblogs.com/howhy/p/7787194.html
Copyright © 2011-2022 走看看