📅  最后修改于: 2023-12-03 15:19:33.153000             🧑  作者: Mango
在Python中,一切皆为对象。对象是Python中的基本单元,所有的数据类型都是对象,包括数字、字符串、列表、元组、字典等等。在Python中,每个对象都有其对应的类,而类就像是一个模板,可以用来创建对象。
在Python中,使用class
关键字来定义类。下面是一个示例:
class MyClass:
pass
上面的代码定义了一个名为MyClass
的类,其中的pass
表示类的定义体为空。
在Python中,使用类来创建一个对象的过程称为实例化。使用类名加上括号即可实例化一个对象,下面是一个示例:
mc = MyClass()
上面的代码创建了一个名为mc
的MyClass
对象。
在Python中,类和对象都可以有属性和方法。属性是类或对象的数据,而方法是类或对象的行为。
类属性和方法是在类中定义的,所有的对象都共享同一个类属性。下面是一个示例:
class MyClass:
class_var = 0
@classmethod
def class_method(cls):
cls.class_var += 1
上面的代码定义了一个名为MyClass
的类,其中包含一个类属性class_var
和一个类方法class_method
。类属性可以通过类名或对象名来访问,而类方法只能通过类名来调用。
实例属性和方法是在对象中定义的,每个对象都有自己的一份实例属性和方法。下面是一个示例:
class MyClass:
def __init__(self, instance_var):
self.instance_var = instance_var
def instance_method(self):
print(self.instance_var)
上面的代码定义了一个名为MyClass
的类,其中包含一个实例属性instance_var
和一个实例方法instance_method
。实例属性和方法只能通过对象名来访问和调用。
在Python中,封装、继承和多态是面向对象编程的三个基本特性。下面简单介绍一下它们:
封装是将类的实现细节隐藏起来,只对外暴露必要的接口。在Python中,使用__
来表示私有属性或方法。下面是一个示例:
class MyClass:
def __init__(self):
self.__private_var = 0
def get_private_var(self):
return self.__private_var
def set_private_var(self, value):
self.__private_var = value
上面的代码定义了一个名为MyClass
的类,其中有一个私有属性__private_var
和两个公有方法get_private_var
和set_private_var
。私有属性只能在类内部访问和修改,而公有方法提供了对私有属性的访问和修改。
继承是指一个类从另一个类中继承属性和方法。在Python中,继承使用类名加括号的形式来表示,下面是一个示例:
class MyDerivedClass(MyBaseClass):
pass
上面的代码定义了一个名为MyDerivedClass
的类,它从MyBaseClass
类中继承属性和方法。子类可以重写父类的方法,这也是实现多态的一种方式。
多态是指不同的对象可以对同一方法作出不同的响应。在Python中,多态可以通过方法重写和方法重载来实现,下面是一个示例:
class MyParentClass:
def my_method(self):
print("parent class")
class MyChildClass(MyParentClass):
def my_method(self):
print("child class")
def my_function(obj):
obj.my_method()
parent_obj = MyParentClass()
child_obj = MyChildClass()
my_function(parent_obj) # 输出:parent class
my_function(child_obj) # 输出:child class
上面的代码定义了一个名为MyParentClass
的父类和一个名为MyChildClass
的子类,它们都有一个名为my_method
的方法。在函数my_function
中,如果传入的是父类对象,输出"parent class",如果传入的是子类对象,输出"child class",这就是多态的一种体现。