Class的定义
在Python中,用关键字class来定义一个类,语法如下:
复制代码
class MyClass:
def init(self, arg1, arg2):
self.arg1 = arg1
self.arg2 = arg2
def my_method(self):
print(“Hello world”)
- init()方法是类的构造函数,在创建实例时进行初始化。
- 在类中定义的函数称为“方法”,第一个参数必须是self,代表该方法所属的对象实例。
Class的实例化
在定义完class之后,可以通过调用类来创建实例:
复制代码
my_instance = MyClass(1, 2)
这将调用MyClass的构造函数,并返回一个新的MyClass对象实例,其中arg1设置为1,arg2设置为2。
Class的属性和方法
在class中,可以定义变量作为类的属性,与普通的变量相似。
复制代码
class MyClass:
def init(self, arg1, arg2):
self.arg1 = arg1
self.arg2 = arg2
def my_method(self):
print(“Hello world”)
my_var = “hello”
此外,还可以定义静态方法和类方法:
复制代码
class MyClass:
def init(self, arg1, arg2):
self.arg1 = arg1
self.arg2 = arg2
def my_method(self):
print(“Hello world”)
@staticmethod
def static_method():
print(“This is a static method.”)
@classmethod
def class_method(cls):
print(“This is a class method.”)
- @staticmethod装饰器定义了一个静态方法,不需要实例化对象即可调用。
- @classmethod装饰器将第一个参数(通常命名为cls)绑定到类本身,而非对象实例。
Class的继承
Python中的class支持继承,允许派生出新的子类,以便于代码组织和重复利用。如下所示:
复制代码
class MySubClass(MyClass):
def init(self, arg1, arg2, arg3):
super().init(arg1, arg2)
self.arg3 = arg3
def my_sub_method(self):
print(“This is a sub method.”)
在这个例子中,MySubClass继承自MyClass,并添加了一个新的变量arg3和一个新的方法my_sub_method()。
可以通过以下方式创建子类的对象实例:
复制代码
my_sub_instance = MySubClass(1, 2, 3)
此时,my_sub_instance既拥有了父类MyClass的属性和方法,也拥有了子类MySubClass的属性和方法。
总结
Python中的class提供了面向对象编程的支持,可以将代码更加模块化、可重用性强。在定义class时,我们可以设置构造函数、属性和方法等,也可以继承父类并添加新的特性。