3. 类对象的创建使用及修改
==创建类对象的过程,又称为类的实例化 ,== 类对象的创建 : 变量名 = 类名(参数) 定义类时,如果没有添加 init() 构造方法,又或者添加的 init() 中仅有一个 self 参数, 则创建类对象时的参数可以省略不写。
class Person: #定义一个人类
'''
这是一个Person类的定义
'''
# __init__函数,实例化时为每个实例定制自己的属性
def __init__(self, name, age, weight):
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)
输出
小强 1 18
小杰 2 20
4. 类对象的使用
类对象名.变量名 #使用英文句点 “.” 来访问对象中的属性(变量) 类对象名.方法名(参数) #使用英文句点 “.” 来访问对象中的方法(函数)
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.think(10, 100) # 访问类对象的方法,类对象名.方法名(参数)
Someone.Information() # 访问类对象的方法,由于只有一个self参数,所以不需要传入参数
#类对象的修改:直接赋值
Someone.name = '大杰'
Someone.age = 28
Someone.weight = 80
Someone.Information() #修改后的信息
输出
小杰
10 + 100 = 110
小杰今年18岁,体重60公斤
大杰今年28岁,体重80公斤
==注意,Python支持添加新的实例变量或者删除已有的实例变量,也支持给类对象动态添加方法。但是这样就会打乱实例的结构,尽量不用。==
5. self使用详解
- 类中的实例属性和实例方法的第一个参数必须是self def init(==self,== name, age, weight):
- self表征的是当前实例,这样类就能区分当前的实例的内容
self 参数的具体作用是==同一个类可以产生多个对象。== class Person: #定义一个人类
def __init__(self, name): # __init__函数,实例化时为每个实例定制自己的属性
self.name = name # 实例属性,表示定义的实例有自己的name
def myself(self):
#myself() 中的 self 代表该方法的调用者,即谁调用该方法,那么 self 就代表谁。
print("this is my self:", self)
Someone_1 = Person(name="小杰")
print("小杰: ", Someone_1)
Someone_1.myself()
print()
Someone_2 = Person(name="大杰")
print("大杰: ", Someone_2)
Someone_2.myself()
输出
小杰: <__main__.Person object at 0x7f5c592184f0>
this is my self: <__main__.Person object at 0x7f5c592184f0>
大杰: <__main__.Person object at 0x7f5c5924e970>
this is my self: <__main__.Person object at 0x7f5c5924e970>