首页 > 其他 > 详细

面向对象的高级2

时间:2018-02-14 18:32:38      阅读:187      评论:0      收藏:0      [点我收藏+]
class Good():
    def __init__(self):
        self.original=100
        self.discount = 0.8

    @property
    def price(self):
        new_price=self.original*self.discount
        return new_price
    @price.setter
    def price(self,value):
        self.original=value

    @price.deleter
    def price(self,value):
        del self.original
    def __del__(self):
        pass
    def __call__(self, *args, **kwargs):
        pass


# obj=Good()
# print(obj.price)
# obj.price = 200
# # del obj.price
# print(obj.price)

‘‘‘
1.__doc__:类的描述信息
2.__module__:当前操作的对象在哪个模块
3.__class__:当前操作的类是什么
4.__call__:对象后面加括号,触发执行
5.__dict__:类或对象中的所有成员
6.__getitem__,__setitem__,__delitem__:用于索引操作,如字典。以上分别获取、设置、删除数据
7.__del__:析构方法,当对象在内存中被释放时,自动触发执行。可以写一些,数据库或是文件的关闭操作
8.__iter__:用于迭代器,之所以列表、字典、元祖可以进行for循环,是因为类型内部定义了__iter__

‘‘‘
from copy文件 import A
class C:
    ‘‘‘去年买个包‘‘‘
    def __init__(self):
        self.name=dog
    def __call__(self, *args, **kwargs):
        print(__call__)

a=A()
c=C()
C()()#执行call方法
print(c.__doc__)#去年买个包
print(C.__module__)#__main__
print(a.__module__)#copy文件
print(c.__class__)#<class ‘__main__.C‘>
print(a.__class__)#<class ‘copy文件.A‘>
print(a.__dict__)#{}
print(c.__dict__)#{‘name‘: ‘dog‘}

# s=str(123).__iter__()
# print(s.__next__)


def my_range(bound):
    for i in range(bound):
        return i
a=my_range(100)

 

面向对象的高级2

原文:https://www.cnblogs.com/ldq1996/p/8448648.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!