python-面向对象编程-内置方法

面向对象的内置方法(举例)

一、isinstance(obj,cls)和issubclass(sub,super)

1、    检查boj是否为对象(实例)  

class Foo(object):
    pass

obj = Foo()

print(isinstance(obj, Foo))
判断谁是谁的对象(实例)

2、    检查sub是否子类

class Foo(object):
    pass

class sub(Foo):
    print('sub')
obj = Foo()

issubclass(Bar, Foo)
判断谁是谁的类

二、item系列——把对象做成像字典对象的东西,从而让操作者可以将像对象那样的操作。

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

    def __getitem__(self, item):
        print(self.__dict__[item])

    def __setitem__(self, key, value):
        self.__dict__[key] = value

    def __delitem__(self, key):
        print('del obj[key]时,我执行')
        self.__dict__.pop(key)

    def __delattr__(self, item):
        print('del obj.key时,我执行')
        self.__dict__.pop(item)


f1 = Foo('sb')
f1['age'] = 18
f1['age1'] = 19
del f1.age1
del f1['age']
f1['name'] = 'alex'
print(f1.__dict__)
把自定义的对象做成字典对象

三、__str__(把类中的属性定制成str 用户打印对象时,将信息返回给用户)

class People:
    def __init__(self,name,age):
        self.name = name
        self.age = age

    def __str__(self):
        return '<name> : %s <age> : %s' %(self.name,self.age)

p1 = People('alex',12)
print(p1)
类属性定制成字符串

四、__del__(回收资源)

class Foo:

    def __del__(self):
        print('执行我啦')

f1=Foo()
# del f1
print('------->')

#输出结果
# ------->
# 执行我啦
(析构方法)回收资源

 

posted @ 2018-05-10 21:10  OYxing  阅读(135)  评论(0编辑  收藏  举报