python面向对象特殊方法

面向对象

在面向对象的过程中,我们会用到一些特殊方法,在这里记录一下:

class Foo:
    def __init__(self, name):
        self.name = name

    def show(self):
        print(self.name)


    def __call__(self):
        print('调用了call方法')

    def __getitem__(self, key):
        print('调用了getitem方法 %s' %key)

    def __setitem__(self, key, value):
        print('调用了setitem方法 key is %s, value is %s' %(key, value))

    def __delitem__(self, key):
        pass


obj = Foo('xiaoran')

obj() ### 默认调用__call__
obj['k']  ###默认调用__getitem__
obj['k'] = '123' ##默认调用__setitem__
del obj['k']  ###默认调用__delitem__

>>>>>>>
调用了call方法
调用了getitem方法 k
调用了setitem方法 key is k, value is 123

你可能感兴趣的:(python)