今天我们来聊一下有关Python中类的定义与实例化的问题。
一.Python中类的定义
Python中定义类的基本格式为:
class 类名:
def __init__(self,参数1,参数2,……):
self.属性名1 = 参数1
self.属性名2 = 参数2
…
def 方法1: #方法即类中的函数
…
def 方法2:
…
…
例如:
#定义一个Student类,属性有name和age,利用方法message输出学生信息
class Student:
def__init__(self,name,age):
self.name = name
self.age = age
def message():
print(f'{self.name} is {age} years old’)
关于上述定义的几点说明:
1.类名需采用驼峰命名法,即类名中每个单词的首字母都要大写,而不采用下划线,实例以及模块则采用小写形式;
2.上述定义中,形参self必不可少,且必须位于其它参数前面。在Python调用上述方法创建实例时,将自动传入实参self,后续每个与实参相关的操作都将自动传入实参self,此时,self是一个指向实例的引用,实例因此得以访问类中的属性与方法;
3.属性默认值的指定:
可以在初始化属性的过程中,采用’self.属性名 = 默认值’的方式进行,或者在__init__(self,)中直接输入‘参数 = 默认值’(可以但没必要,不如上一种方法简洁)。
3.__init __是一个特殊函数,左右两边各有两个下划线,当你利用上述定义的类创建一个实例时,Python会自动调用他,用以传递实参self.
二.Python中类的实例化
类的实例化即根据类来创建一个或多个对象。其基本格式为:
对象名称 = 类名(self,实参1,实参2,……)
创建的实例可以通过’实例名.属性名(方法名)’的格式来调用类中的属性与方法。
注意:实例化时,上述格式中的self可以省略,Python将自动传入self。
我们采用上面定义的类来实例化一个student1对象:
student1 = Student(‘XiaoMing’,20)
print(student1.name)
student1.message()
属性值的修改:
(1)直接修改属性值:
实例名称.属性名 = 值
(2)通过类中的方法修改属性值:
可以通过在类中定义一个方法,实例化后调用该方法,来修改属性值。
我们在Student类中添加如下属性与方法:
self.height = 180
def change_height(self,height):
self.height = height
实例化后修改height为185:
方法(1)
student1.height = 185
方法(2)
student1.change_height(185)
注意:上述两种方法仅能改变当前实例的值,如果新建一个实例student2,而不去进行上述修改属性的操作,student2.height仍然为180.
前人栽树,后人乘凉。本人在编写上述内容时也是查阅了不少资料,学到了不少东西。在这里分享给大家,希望我们一起进步,也欢迎大家讨论。