主要内容 #
1. 类对象的创建 #
创建类对象的过程,又称为类的实例化。
对已定义好的类进行实例化,其语法格式如下:
变量名 = 类名(参数)
定义类时,如果没有添加 __init__() 构造方法,又或者添加的 __init__() 中仅有一个 self 参数。
则创建类对象时的参数可以省略不写。
例如,如下代码创建了名为 Person 的类,并对其进行了实例化:
class Person: #定义一个人类 ''' 这是一个Person类的定义 ''' # __init__函数,实例化时为每个实例定制自己的属性 def __init__(self, name, age, weight): # __init__函数,实例化时为每个实例定制自己的属性 self.name = name self.age = age self.weight = weight Someone_1 = Person(name='小强', age=1, weight=18) print(Someone_1.name, Someone_1.age, Someone_1.weight) Someone_2 = Person(name='小杰', age=2, weight=20) print(Someone_2.name, Someone_2.age, Someone_2.weight)
2. 类对象的使用 #
定义的类只有进行实例化,也就是使用该类创建对象之后,才能使用。
总的来说,实例化后的类对象可以执行以下操作:
- 访问或修改类对象具有的实例变量;
- 调用类对象的方法。
访问类的属性(变量)的方法,格式如下:
类对象名.变量名 # 使用英文句点 “.” 来访问对象中的变量 类对象名.方法名(参数) # 使用英文句点 “.” 来访问对象中的方法
例如:
class Person: #定义一个人类 ''' 这是一个Person类的定义 ''' def __init__(self, name, age, weight): self.name = name self.age = age self.weight = weight def think(self, a, b): print(a,' + ',b,' = ',a+b) def Information(self): print("%s今年%d岁,体重%d公斤" % (self.name, self.age, self.weight)) Someone = Person('小杰', 18, 60) #创建对象 print(Someone.name) #访问类对象的属性 Someone.Information() #访问类对象的方法,由于只有一个self参数,所以不需要传入参数 Someone.think(10,100) #访问类对象的方法
3. 类对象的修改 #
在创建一个对象时,可以通过构造函数给对象的属性赋值
在创建好对象之后,也可以对对象的属性进行修改。
直接给对象的属性赋值,即可修改,比如:
class Person: #定义一个人类 ''' 这是一个Person类的定义 ''' def __init__(self, name, age, weight): self.name = name self.age = age self.weight = weight def Information(self): print("%s今年%d岁,体重%d公斤" % (self.name, self.age, self.weight)) Someone = Person('小杰', 18, 60) #创建对象 Someone.Information() #修改前的信息 Someone.name = '大杰' Someone.age = 28 Someone.weight = 80 Someone.Information() #修改后的信息
注意,Python支持添加新的实例变量或者删除已有的实例变量,也支持给类对象动态添加方法。
但是这样就会打乱实例的结构,尽量不用
4. 小结 #
- 创建类对象的过程,又称为类的实例化
- 类对象的使用:调用属性和方法
- 类对象的修改:直接赋值
习题 #
- 实现人这个类,包含类属性:role,包含实例属性:name,height,age,sex,location,包含方法:打印所有属性
- 构建如下几个类对象(实例),并且打印出所有属性:
- 小明,100cm,10岁,男,上海
- 老李,175cm,50岁,男,北京
- 小红,105cm,11岁,女,上海