Python是一门面向对象的编程语言,类与对象是Python面向对象编程中的核心概念。下面对类与对象进行详细介绍:
1. 类
类是Python面向对象编程中的基本单位,也是一种数据类型,类对应了一类具有相同属性和方法的对象集合。定义一个类可以使用`class`关键字,语法如下:
```
class MyClass:
pass
```
2. 对象
对象是类的实例化,是类的一个具体实现,一个类可以被实例化多次,每次实例化得到的对象都是相互独立的。创建对象可以使用类名加小括号的形式来实现,语法如下:
```
my_obj = MyClass()
```
3. 属性
属性是类的状态和特征的表现,包括变量和常量,类的属性可以存储在类中,也可以存储在对象中。可以通过类名或对象名来访问属性,语法如下:
```
class MyClass:
my_class_attr = 'class attribute'
def __init__(self):
self.my_obj_attr = 'object attribute'
my_obj = MyClass()
print(MyClass.my_class_attr) # 类属性
print(my_obj.my_obj_attr) # 对象属性
```
4. 方法
方法是类的行为,是对对象进行操作的函数。类中的方法分为两种:类方法和对象方法。类方法使用`@classmethod`装饰器修饰,第一个参数是`cls`,表示类本身;对象方法使用`self`表示对象本身。可以通过类名或对象名来调用方法,语法如下:
```
class MyClass:
my_class_attr = 'class attribute'
def __init__(self, name):
self.name = name
@classmethod
def show(cls):
print(cls.my_class_attr)
def show_name(self):
print(self.name)
MyClass.show() # 调用类方法
my_obj = MyClass('obj')
my_obj.show_name() # 调用对象方法
```
5. 继承
继承是面向对象编程的基本概念之一,在Python中也支持继承。子类可以继承父类的属性和方法,并且可以对父类的方法进行扩展和重构。可以使用`class 子类名(父类名)`的形式来实现继承,语法如下:
```
class FatherClass:
def run(self):
print('Father running')
class SonClass(FatherClass):
def run(self):
print('Son running')
my_obj = SonClass()
my_obj.run() # 调用子类的run方法
```
总结:类与对象是Python面向对象编程的重要概念。类是一种数据类型,包含多个对象的共性,对象是类的一个具体实例,具有各自的特性和行为。类中包括属性和方法,属性是类的状态和特征的表现,方法是对象的行为;继承是面向对象编程的基本概念之一,在Python中也支持继承。