python面向对象函数

  • Post category:Python

下面我将为您详细讲解Python面向对象函数的完整攻略。

一、面向对象编程概述

  1. 面向对象编程概述:面向对象编程(Object-oriented programming,简称OOP)是一种编程模式,将现实中的事物抽象成对象,通过对象之间的交互实现程序的功能。
  2. 面向对象编程的基本概念:类、对象、方法、封装、继承和多态。

二、定义类和对象

  1. 定义类:使用关键字class定义类,类名一般采用大驼峰命名法,类的方法中必须包含self参数,代表当前对象。

示例代码如下:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def say_hello(self):
        print("Hello, my name is %s, I am %d years old." % (self.name, self.age))
  1. 定义对象:使用类名()创建对象,对象的属性和方法可以通过对象直接访问。

示例代码如下:

person = Person('Tom', 18)
person.say_hello()  # 输出:Hello, my name is Tom, I am 18 years old.

三、方法的访问控制

Python中方法的访问控制通过方法名称的前缀来实现,对应关系如下:

  1. __表示私有方法,只能在类内部访问。
  2. _表示保护方法,只能在类及其子类中访问。
  3. 没有前缀表示公有方法,可以在任何地方访问。

示例代码如下:

class Person:
    def __init__(self, name, age):
        self.__name = name
        self._age = age

    def __secret_method(self):
        print("This is a secret method.")

    def say_hello(self):
        print("Hello, my name is %s, I am %d years old." % (self.__name, self._age))
        self.__secret_method()

person = Person('Tom', 18)
person.say_hello()  # 输出:Hello, my name is Tom, I am 18 years old.  This is a secret method.

# 下面这行代码会报错,因为__secret_method是私有方法,无法从类外部访问。
# person.__secret_method()

四、继承和多态

  1. 继承:子类可以继承父类的属性和方法。使用关键字class 子类名(父类名)定义。

示例代码如下:

class Student(Person):
    def __init__(self, name, age, grade):
        super().__init__(name, age)
        self.grade = grade

    def say_hello(self):
        print("Hello, my name is %s, I am %d years old, and I am in grade %d." % (self.__name, self._age, self.grade))

student = Student('Jack', 15, 9)
student.say_hello()  # 输出:Hello, my name is Jack, I am 15 years old, and I am in grade 9.
  1. 多态:相同名称的方法在不同的子类中有不同的实现方式,这种现象称为多态。

示例代码如下:

class Dog:
    def speak(self):
        print("Woof!")

class Cat:
    def speak(self):
        print("Meow!")

def animal_speak(animal):
    animal.speak()

dog = Dog()
cat = Cat()

animal_speak(dog)  # 输出:Woof!
animal_speak(cat)  # 输出:Meow!

以上就是Python面向对象编程的完整攻略,希望能对您有所帮助。