如何在Python中定义类?

如何在Python中定义类?

Python是一种面向对象的语言,类是其面向对象的核心。在Python中定义类非常简单,只需要使用关键字class即可。下面就来详细介绍如何在Python中定义类。

更多Python文章,请阅读:Python 教程

基本结构

Python中定义类的基本结构如下:

class ClassName:
    def __init__(self, arg1, arg2, ...):
       # 构造方法
    def method1(self, arg1, arg2, ...):
       # 方法1
    def method2(self, arg1, arg2, ...):
       # 方法2
    # ...

其中,class后跟类名,后面是类的成员(属性和方法)。

  • 构造方法init方法是类的构造方法,在创建实例对象时调用,可以用来初始化对象的属性等。
  • 方法:在类中定义的函数称为类方法,它们可以被实例对象调用。
  • 属性:类中定义的变量称为属性,可以通过点操作符“.”访问;
class Person:
    def __init__(self, name):  # __init__方法
        self.name = name       # 属性name

    def say_hello(self):       # 方法say_hello
        print(f"hello, {self.name}")

p = Person("Tom")             # 创建对象p
p.say_hello()                 # 调用p的say_hello方法,输出hello, Tom

成员修饰符

Python中的成员修饰符有两种:公有和私有。

  • 公有成员:在方法名前没有加任何前缀或双下划线“__”。
  • 私有成员:在方法名前加双下划线“__”。
class Person:
    def __init__(self, name, age):
        self.name = name          # 公有属性name
        self.__age = age          # 私有属性age,不能在类外直接访问

    def say_hello(self):
        print(f"hello, {self.name}, {self.__age}岁")  # 在类的方法中,可以访问私有属性

p = Person("Tom", 20)
p.say_hello()

print(p.name)      # 可以直接访问公有属性name
print(p.__age)     # 出错,不能访问私有属性

继承

Python中的继承使用关键字“extends”实现。

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

    def say_hello(self):
        print(f"hello, {self.name}")

class Student(Person):   # Student继承Person
    def __init__(self, name, grade):
        super().__init__(name)    # 调用Person的构造方法初始化name属性
        self.grade = grade

    def study(self):
        print(f"{self.name}正在学习{self.grade}年级的课程")

s = Student("John", 3)
s.say_hello()         # 调用Person的say_hello方法,输出hello, John
s.study()             # 输出John正在学习3年级的课程

多态

Python中的多态使用鸭子类型实现,即不关心对象的类型,只关心对象是否有特定的属性或方法。

class Dog:
    def bark(self):
        print("旺旺!")

class Cat:
    def bark(self):
        print("喵喵!")

def animal_bark(animal):
    animal.bark()     # 调用对象的bark方法

d = Dog()
c = Cat()

animal_bark(d)      # 输出旺旺!
animal_bark(c)      # 输出喵喵!

结论

Python中定义类非常简单,只需要使用关键字class即可。类中包括成员(属性和方法),可以使用修饰符公有和私有控制访问。类可以继承其他类,实现代码重用和多态。多态使用鸭子类型实现,只关心对象是否具有特定的属性或方法,而不关心对象的类型。掌握类的定义是Python编程的基础,也是实现面向对象编程的关键。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程