面向对象的高级2

Posted TAMAYURA

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象的高级2相关的知识,希望对你有一定的参考价值。

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的主要内容,如果未能解决你的问题,请参考以下文章

阶段1 语言基础+高级_1-2 -面向对象和封装_1

五. 面向对象高级特性2. 内部类的分类

Java多线程与并发库高级应用-工具类介绍

Java多线程与并发库高级应用-工具类介绍

JAVA07 面向对象(高级)类变量类方法代码块final抽象类接口内部类

JAVA07 面向对象(高级)类变量类方法代码块final抽象类接口内部类