2020-10-21 20:33:17
Class类是面向对象编程中的核心概念,用于定义对象的结构和行为。 以下是对Class类的详细解析:
基础概念
对象:由Class生成的具体实例。例如,harry_potter_book = Document('harry Potter','J.K.Rowling','...forever Do not believe...') 创建了一个Document类的对象。
属性:对象的静态特征,如title、author、context。
函数:对象的动态能力,如intercept_context()函数。
类中函数
构造函数:__init__函数在对象生成时自动调用,用于初始化对象属性。属性通过构造函数传入,如self.title = title。
成员函数:普通函数,第一个参数为self,用于操作对象属性。例如,get_context_lenfth()返回__context的长度。
类函数:使用@classmethod装饰器,第一个参数为cls,与类本身相关而非实例。
静态函数:使用@staticmethod装饰器,与类和实例均无关,仅是逻辑上的归属。
常量声明:在类中直接声明,通常使用全大写表示,如MAX_LENGTH = 100。
代码示例解析
class Document(): def __init__(self, title, author, context): print('init function called') self.title = title self.author = author self.__context = context # __私有属性 def get_context_lenfth(self): return len(self.__context) def intercept_context(self, length): self.__context = self.__context[:length]harry_potter_book = Document('harry Potter', 'J.K.Rowling', '...forever Do not believe...')print(harry_potter_book.title)print(harry_potter_book.author)print(harry_potter_book.get_context_lenfth())构造函数:__init__初始化title、author和__context属性。
成员函数:get_context_lenfth()计算__context长度,intercept_context()截取__context前length个字符。
对象创建:harry_potter_book是Document类的实例,通过构造函数传入属性值。
属性访问:直接访问title和author,调用get_context_lenfth()获取__context长度。
关键点总结
封装性:__context为私有属性,外部不能直接访问,需通过成员函数操作。
初始化:构造函数确保对象创建时属性被正确初始化。
函数类型:成员函数操作实例属性,类函数和静态函数提供不同级别的功能。
通过Class类,可以高效地组织代码,实现数据的封装和操作的模块化,提升代码的可维护性和复用性。