下面是“跟老齐学Python之编写类之一创建实例”的完整攻略。
创建实例
在Python中,类(class)是一种面向对象编程(OOP)的基本概念。类是一个抽象的概念,它代表着一类事物的共性特征,而实例(instance)则是类的具体实现。我们可以把类看做是一个模板,而实例就是用这个模板创建出来的实体。
创建类
在Python中,我们可以使用class
关键字来创建一个类,类名需要大写开头。一个最简单的类可以是这样的:
class Person:
pass
这个类并没有定义任何属性和方法,但是它已经可以使用了。我们可以使用Person()
来创建一个实例:
p = Person()
添加属性和方法
一个类包含两种成员:属性和方法。属性是类的数据成员,方法是类的函数成员。我们可以在类中定义属性和方法。
定义属性
一个类的实例可以包含多个属性,我们可以在类的__init__()
方法中定义这些属性。__init__()
方法是一个特殊的方法,用来初始化类的实例。在这个方法中,我们可以给实例赋予初始值,也可以定义一些对象变量。在下面这个类中,我们定义了一个name
属性,并将它的初始值设为None:
class Person:
def __init__(self):
self.name = None
现在我们可以创建一个实例,并为它的name
属性赋值:
p = Person()
p.name = "张三"
定义方法
在类中定义方法的方式与定义函数类似,只是在函数的前面需要加上一个self
参数,用来接收实例本身。self
参数是必须的,但是我们不需要手动传递这个参数,Python会自动为我们传递。在下面这个类中,我们定义了一个say_hello()
方法,用来向屏幕输出一条问候语:
class Person:
def __init__(self):
self.name = None
def say_hello(self):
print("你好,我叫%s" % self.name)
现在我们可以创建一个实例,并调用它的say_hello()
方法:
p = Person()
p.name = "张三"
p.say_hello()
输出结果为:"你好,我叫张三"
示例说明
下面我们来看两个示例,帮助理解创建实例的过程。
示例1:创建一个汽车类
我们来创建一个汽车类,包含brand
和color
两个属性,以及start_engine()
、stop_engine()
和drive()
三个方法。在方法中,start_engine()
和stop_engine()
分别用来启动和关闭引擎,drive()
方法用来驾驶汽车。
class Car:
def __init__(self, brand, color):
self.brand = brand
self.color = color
self.engine_status = False
def start_engine(self):
if self.engine_status:
print("引擎已经启动")
else:
print("启动引擎")
self.engine_status = True
def stop_engine(self):
if self.engine_status:
print("关闭引擎")
self.engine_status = False
else:
print("引擎已经关闭")
def drive(self):
if self.engine_status:
print("开始驾驶")
else:
print("请先启动引擎")
现在我们可以创建一个实例,并使用它的方法:
car = Car("奔驰", "黑色")
car.start_engine()
car.drive()
car.stop_engine()
结果输出:
启动引擎
开始驾驶
关闭引擎
示例2:创建一个学生类
我们再来创建一个学生类,包含name
、age
和grades
三个属性,以及update_grades()
和get_average_grade()
两个方法。在方法中,update_grades()
方法用来更新学生成绩,get_average_grade()
方法用来计算学生的平均成绩。
class Student:
def __init__(self, name, age, grades=[]):
self.name = name
self.age = age
self.grades = grades
def update_grades(self, new_grades):
self.grades = new_grades
def get_average_grade(self):
n = len(self.grades)
if n == 0:
return 0
else:
return sum(self.grades) / n
现在我们可以创建一个学生实例,并使用它的方法:
stu = Student("张三", 18, [88, 90, 92])
avg_grade = stu.get_average_grade()
print("%s的平均成绩是:%d" % (stu.name, avg_grade))
stu.update_grades([95, 98])
avg_grade = stu.get_average_grade()
print("%s的平均成绩是:%d" % (stu.name, avg_grade))
结果输出:
张三的平均成绩是:90
张三的平均成绩是:94
以上就是关于“跟老齐学Python之编写类之一创建实例”的完整攻略。希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:跟老齐学Python之编写类之一创建实例 - Python技术站