Python 类的定义
Python 类的定义
Python 使用class关键字定义类,类名通常采用大驼峰命名法(如MyClass)。类定义的基本语法如下:
classClassName:def__init__(self,param1,param2):self.param1=param1 self.param2=param2__init__是类的构造函数,用于初始化对象属性。self参数代表类的实例,必须在实例方法中显式声明。
类的属性与方法
类可以包含属性和方法。属性分为实例属性和类属性,方法分为实例方法、类方法和静态方法。
classMyClass:class_attr="This is a class attribute"# 类属性def__init__(self,instance_attr):self.instance_attr=instance_attr# 实例属性definstance_method(self):returnf"Called instance_method with{self.instance_attr}"@classmethoddefclass_method(cls):returnf"Called class_method with{cls.class_attr}"@staticmethoddefstatic_method():return"Called static_method"类的继承
Python 支持继承,子类可以继承父类的属性和方法,并可以重写或扩展父类的功能。
classParentClass:defparent_method(self):return"Parent method"classChildClass(ParentClass):defchild_method(self):return"Child method"类的多态
多态允许不同类的对象对同一方法调用作出不同的响应。通过方法重写实现多态。
classAnimal:defspeak(self):passclassDog(Animal):defspeak(self):return"Woof!"classCat(Animal):defspeak(self):return"Meow!"类的特殊方法
Python 提供了许多特殊方法(以双下划线开头和结尾),用于实现类的特定行为,如运算符重载、字符串表示等。
classVector:def__init__(self,x,y):self.x=x self.y=ydef__add__(self,other):returnVector(self.x+other.x,self.y+other.y)def__str__(self):returnf"Vector({self.x},{self.y})"类的封装
封装通过将数据和方法隐藏在类内部,仅暴露必要的接口来实现。Python 使用命名约定(如单下划线_或双下划线__)表示私有成员。
classEncapsulatedClass:def__init__(self):self._protected_attr="Protected"self.__private_attr="Private"defget_private_attr(self):returnself.__private_attr类的使用示例
以下是一个完整的类定义和使用的示例:
classPerson:def__init__(self,name,age):self.name=name self.age=agedefgreet(self):returnf"Hello, my name is{self.name}and I am{self.age}years old."person=Person("Alice",30)print(person.greet())总结
Python 的类提供了面向对象编程的核心功能,包括封装、继承和多态。通过定义类、属性和方法,可以构建复杂的程序结构。特殊方法和装饰器进一步扩展了类的灵活性和功能。
