Python是一种面向对象的编程语言,因此掌握面向对象编程在Python中十分重要。本文将向大家介绍Python中面向对象编程的概念、类的定义、继承、多态等基本概念。
1. 面向对象编程的概念
在Python中,一切都是对象。类是一种对象,创建类实际上是创建对象的模板。而实例是从类中创建出来的对象,是类的具体实现。Python中面向对象编程的特点是:类可以定义属性和方法,实现继承、多态等特性。
2. 定义类
在Python中,我们使用class
关键字来定义类。类包含属性和方法。属性就是类的状态信息,表示事物的某些特征。方法是类的行为,表示事物的某些动作。下面是一个简单的类的定义及使用:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def say_hello(self):
print("Hello, my name is", self.name, "I'm", self.age, "years old.")
上面定义了一个名叫Person
的类,包含属性name
和age
以及一个方法say_hello
。其中__init__
是一个特殊的方法,用来初始化实例对象。self
是指向实例本身的引用,也就是将要被创建的对象。使用类来创建实例对象,可以像下面这样:
person1 = Person("Tom", 18)
person2 = Person("Lucy", 20)
person1.say_hello() # 输出: Hello, my name is Tom I'm 18 years old.
person2.say_hello() # 输出: Hello, my name is Lucy I'm 20 years old.
3. 继承
继承是指从另一个类中获得属性和方法。Python使用super()
关键字表示父类。下面是继承的代码实例:
class Student(Person):
def __init__(self, name, age, school):
super().__init__(name, age)
self.school = school
def say_hello(self):
super().say_hello()
print("I study at", self.school)
上面定义了一个名叫Student
的类,继承了Person
类,包含属性school
以及重写的方法say_hello
。继承后的方法,可以使用super()
调用父类的同名方法。使用子类来创建实例对象,可以像下面这样:
stu1 = Student("Mike", 20, "Harvard")
stu2 = Student("Alice", 19, "MIT")
stu1.say_hello() # 输出: Hello, my name is Mike I'm 20 years old. I study at Harvard
stu2.say_hello() # 输出: Hello, my name is Alice I'm 19 years old. I study at MIT
4. 多态
多态是指不同的对象可以使用相同的接口。在Python中,我们可以使用相同的方法名,执行不同的方法体。下面是多态的代码实例:
def say(msg):
msg.say_hello()
class Chinese:
def say_hello(self):
print("你好!")
class American:
def say_hello(self):
print("Hello!")
class Korean:
def say_hello(self):
print("안녕하세요!")
ch = Chinese()
am = American()
kr = Korean()
say(ch) # 输出: 你好!
say(am) # 输出: Hello!
say(kr) # 输出: 안녕하세요!
上面定义了一个名为say
的方法,可以调用不同类的同名方法。使用不同的对象,传递给say
方法,便可以实现多态的效果。
5. 结论
Python中的面向对象编程是十分优秀的,可以让我们更好的管理代码,并且实现高效程序的运行。掌握类的定义、继承、多态等概念,可以极大地提高我们的程序开发水平和代码复用率。