Python编程基础之类和对象
引言
类和对象是面向对象编程的基础。在Python中,类的定义非常简洁,同时也提供了强大的面向对象编程能力。
本文将从以下几个方面介绍Python编程中类和对象的基础知识:
- 类的定义和使用
- 对象的创建和属性访问
- 方法的定义和使用
- 类的继承和多态性
类的定义和使用
定义类
在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
类有两个属性brand
和price
,以及一个构造函数__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类,类中有两个属性name
和age
,在构造函数中进行初始化。
我们可以使用以下语句创建一个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进行面向对象编程了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python编程基础之类和对象 - Python技术站