Python编程基础之类和对象

  

Python编程基础之类和对象

引言

类和对象是面向对象编程的基础。在Python中,类的定义非常简洁,同时也提供了强大的面向对象编程能力。

本文将从以下几个方面介绍Python编程中类和对象的基础知识:

  1. 类的定义和使用
  2. 对象的创建和属性访问
  3. 方法的定义和使用
  4. 类的继承和多态性

类的定义和使用

定义类

在Python中,使用class关键字定义一个类。一个类通常由属性和方法组成。属性是描述类的特征,方法是描述类的行为。

下面是一个实例:

class Car:
    brand = ""
    price = 0
    def __init__(self, brand, price):
        self.brand = brand
        self.price = price
    def run(self):
        print(self.brand + " is running")

上面的Car类有两个属性brandprice,以及一个构造函数__init__和一个方法run

__init__方法是构造函数,在Python中用于初始化对象的属性。其第一个参数self指代的就是对象本身,用于引用对象的属性和方法。在定义其他方法的时候,也需要加上self作为第一个参数。

使用类

类的使用需要先创建类的实例对象。创建对象的方式是调用类的构造函数,例如

my_car = Car("BMW", 300000)

这里我们创建了一个名为my_car的对象,其品牌为"BMW",价格为300000

访问类属性

对象创建完毕后,我们可以通过对象名+属性名的方式来访问对象的属性,例如

print(my_car.brand)
print(my_car.price)

上面的代码分别输出了汽车品牌和价格的信息。

调用类方法

类方法的调用也非常简单,只要使用对象名+方法名的方式,例如

my_car.run()

这里我们调用了汽车的run()方法,程序将输出汽车品牌和"is running"

对象的创建和属性访问

创建对象

创建对象需要调用类的构造函数。举例来说,我们可以这样定义一个Person类:

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

上面的代码定义了一个Person类,类中有两个属性nameage,在构造函数中进行初始化。

我们可以使用以下语句创建一个Person对象:

p = Person("Tom", 18)

上面的代码使用类名Person调用构造函数创建了一个Person对象,并将对象赋值给变量p

访问对象属性

对象属性可以通过点号.来访问,例如:

print(p.name)
print(p.age)

将分别输出"Tom"18

修改对象属性

可以直接给对象的属性重新赋值来修改对象属性,例如:

p.age = 19

通过上面的代码,我们将p的age属性值修改为19

方法的定义和使用

定义方法

在Python中,通过将某个函数的第一个参数命名为self,来声明这个函数是对象的方法,例如:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    def say_hi(self):
        print("Hi, my name is %s!" % self.name)

上面的代码中,我们定义了一个名称为"say_hi"的方法。

调用方法

调用对象的方法很简单,只要使用对象名+方法名的方式,例如:

p = Person("Tom", 18)
p.say_hi()

上面的程序会输出:Hi, my name is Tom!

类的继承和多态性

类的继承

继承是面向对象编程中一个非常强大的特性。在Python中,一个类可以继承另一个类,并将其属性和方法都继承下来。

例如:

class Student(Person):
    def __init__(self, name, age, score):
        Person.__init__(self, name, age)
        self.score = score
    def say_hi(self):
        print("Hi, my name is %s, and my score is %d" % (self.name, self.score))

上面的代码中,我们定义了一个名为Student的子类,它继承了Person父类的__init__方法,并添加了score属性和say_hi方法。

注意,在定义子类的时候,需要在类名后面加上父类的名称,以此表示继承关系。

多态性

多态性是面向对象编程中的另一个重要特性,它表现为相同的方法在不同对象中表现出不同的行为。在Python中,多态性通常通过类的继承和方法的重写实现。

例如:

p = Person("Tom", 18)
s = Student("Jack", 20, 90)
p.say_hi()
s.say_hi()

上面的代码中,我们创建了一个Person对象和一个Student对象,它们都有名为say_hi的方法。但是由于Student类重写了Person类的say_hi方法,因此输出的结果分别是:

Hi, my name is Tom!
Hi, my name is Jack, and my score is 90

结论

在Python中,类和对象是非常重要的概念。了解了类和对象的基础知识之后,就可以开始使用Python进行面向对象编程了。

相关文章