Python中类、继承和方法重写的使用
😀前言
本篇博文将介绍如何定义类、创建类的实例、访问类的成员、使用属性、实现继承及方法重写,希望你能够喜欢
🏠个人主页:晨犀主页
🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是我的动力😉😉
💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,感谢大家的观看🥰
如果文章有什么需要改进的地方还请大佬不吝赐教 先在此感谢啦😊
文章目录
- 面向对象程序设计(OOP)
- 1. 定义类
- 示例
- 2. 创建类的实例
- 示例
- 3. 创建类的成员并访问
- 示例
- 4. 创建用于计算的属性
- 示例
- 5. 继承的基本语法
- 示例
- 6. 方法重写
- 示例
- 😄总结
- 注意事项
面向对象程序设计(OOP)
面向对象编程(OOP,Object-Oriented Programming)是一种常用的编程范式,强调通过类和对象来组织代码。Python 作为一种面向对象语言,提供了强大的支持,方便开发者设计结构化的代码。
1. 定义类
在 Python 中,类是通过 class
关键字来定义的。类是一种模板,它定义了对象的属性和行为,具体语法如下:
class ClassName:"""类的帮助信息"""# 类体statement
参数说明:
ClassName
:类名,通常首字母大写,使用“驼峰式命名法”,即每个单词的首字母都大写,例如MyClass
。statement
:类体,主要由类变量(或类成员)、方法和属性等定义语句组成。如果在定义类时,没想好类的具体功能,也可以在类体中直接使用 pass 语句代替。
示例
class Animal:"""这是一个动物类"""pass
该示例定义了一个名为 Animal
的类,当前类没有任何属性或方法,但可以用于实例化对象。
2. 创建类的实例
定义类后,可以通过调用类名来创建类的实例(对象),即实例化。创建实例的语法如下:
instance_name = ClassName(parameter_list)
其中:
ClassName
是类名;parameter_list
是传递给类构造函数(__init__
方法)的参数列表。如果类没有定义__init__
方法,参数列表可以省略。
示例
class Dog:def __init__(self, name):self.name = namedog1 = Dog("Buddy")
print(dog1.name) # 输出:Buddy
在该示例中,Dog
类通过构造函数 __init__
初始化对象,并将参数 name
赋值给实例属性。
3. 创建类的成员并访问
类的成员包括属性和方法,方法是在类中定义的函数。实例方法的第一个参数必须是 self
,它表示实例本身,用于在方法内部访问实例的属性和其他方法。语法如下:
class ClassName:def method_name(self, parameter_list):# 方法体pass
示例
class Cat:def __init__(self, name, age):self.name = nameself.age = agedef speak(self):print(f"{self.name} says Meow!")cat1 = Cat("Whiskers", 3)
cat1.speak() # 输出:Whiskers says Meow!
在该示例中,我们定义了一个名为 Cat
的类,并定义了一个 speak
实例方法,可以通过类的实例来访问这个方法。
4. 创建用于计算的属性
通过使用 @property
装饰器,可以将方法转换为可计算的属性,这样可以像访问属性一样调用方法。其语法如下:
class ClassName:@propertydef property_name(self):# 返回计算结果pass
示例
class Circle:def __init__(self, radius):self._radius = radius@propertydef area(self):return 3.1416 * (self._radius ** 2)circle1 = Circle(5)
print(circle1.area) # 输出:78.54
在该示例中,Circle
类的 area
方法被定义为属性,因此可以直接通过 circle1.area
来访问,而不需要加括号。
5. 继承的基本语法
继承允许一个类从另一个类中获取属性和方法,避免重复代码。Python 支持单继承和多继承,其语法如下:
class DerivedClass(BaseClass):"""类的帮助信息"""pass
参数说明:
DerivedClass
:派生类,继承自BaseClass
;BaseClass
:基类,派生类继承的父类。
示例
class Animal:def speak(self):print("Animal makes a sound")class Dog(Animal):def speak(self):print("Dog barks")dog1 = Dog()
dog1.speak() # 输出:Dog barks
在该示例中,Dog
类继承了 Animal
类并重写了 speak
方法。
6. 方法重写
当派生类中需要修改或扩展基类的某些行为时,可以通过方法重写来实现。重写后的方法将覆盖基类中的方法,语法与普通方法相同。
示例
class Fruit:color = "绿色"def harvest(self):print("水果已经收获")class Orange(Fruit):color = "橙色"def harvest(self):print(f"橘子是: {self.color} 的")print(f"原来是: {Fruit.color} 的")print("橘子已经收获……")orange1 = Orange()
orange1.harvest()
在这个例子中,Orange
类继承了 Fruit
类并重写了 harvest
方法,通过 self.color
和 Fruit.color
区分实例属性和类属性。
😄总结
面向对象编程是 Python 语言中一个重要的特性,通过类和对象,开发者可以更好地组织代码,复用代码。本文介绍了类的定义、实例化、成员访问、属性定义、继承和方法重写。
注意事项
- 类命名:遵循驼峰式命名法有助于代码的可读性。
- 继承:通过继承可以实现代码重用,但要注意多继承时的复杂性。
- 方法重写:重写父类方法时,确保新方法逻辑清晰且不破坏原有功能。
文章到这里就结束了,如果有什么疑问的地方请指出,诸大佬们一起来评论区一起讨论😁
希望能和诸大佬们一起努力,今后我们一起观看感谢您的阅读🍻
如果帮助到您不妨3连支持一下,创造不易您们的支持是我的动力🤞