python面向对象函数

  • Post category:Python

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的类,包含属性nameage以及一个方法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中的面向对象编程是十分优秀的,可以让我们更好的管理代码,并且实现高效程序的运行。掌握类的定义、继承、多态等概念,可以极大地提高我们的程序开发水平和代码复用率。