Python面向对象-4.实例属性、实例方法
一、实例方法
1. 是什么
我们把创建出来的对象称之为:实例对象,简称对象
所以当我们说实例属性时,就是指这个对象的属性
那什么是方法呢?
通俗的说:方法就是对象中定义的函数,用它来实现功能
2. 定义
定义实例方法的方式与定义函数很类似,唯独不同点在于形参中的第一个参数是self
示例
class Hero(object):
def test1(self):
print("这是一个方法")
def test2(self, age):
print("age=%d" % age)
def test3(self, score1, socre2, socre3):
return (score1 + score2 + score3) / 3
3. 调用
函数的调用方式:
函数名(实参)
实例方法的调用
实例对象.实例方法名(实参)
示例1
class Cat(object):
# 实例方法
def eat(self):
print("猫在吃鱼....")
def drink(self):
print("猫在喝可乐...")
# 创建了一个对象
tom = Cat()
tom.eat() # 调用对象的eat方法
tom.drink()
示例2
class Hero(object):
def test1(self):
print("这是一个方法")
def test2(self, age):
print("age=%d" % age)
def test3(self, score1, socre2, socre3):
return (score1 + score2 + score3) / 3
# 创建Hero类的对象
hero = Hero()
hero.test1() # test1无参无返回值
hero.test2(19) # test2需要传递实参
average_score = hero.test3(100, 99, 98) # test3需要实参,有返回值因此需要用变量来存储
注意:
- 实例方法的调用,一定要用
实例对象.方法名()调用
二、实例属性
1. 是什么
什么是实例属性呢?
通俗的说:实例属性就是对象中可以用的变量,用它来存储数据
2. 定义&使用属性(方式1)
定义方式
对象名.属性名
示例
class Hero(object):
pass
# 创建对象
hero = Hero()
# 给对象设置属性(通俗的说就是:给hero标记的实例对象添加变量且赋值)
hero.name = "王老师"
hero.age = 18
hero.address = "山东青岛"
3. 定义&使用属性(方式2)
定义方式:在实例方法中定义
class 类名(object):
def 方法名(self):
self.实例属性名 = 数据
示例
class Hero(object):
def set_info(self):
# 下面定义的了3个实例属性,且给它们设置了初始值
self.name = "王老师"
self.age = 18
self.address = "山东青岛"
# 创建实例对象
hero = Hero()
# 调用方法,从而让第4、5、6行被执行,从而完成实例对象的属性添加
hero.set_info()
注意:
- 这种方式定义的实例属性,需要调用它所在的方法才行,如果方法不调用那么定义的属性就不会被执行,因此对象就不会有这些属性
4. 更加灵活的使用属性
虽然定义&使用属性有上述2种方式,但是实际开发工作中,是互相用的,没有人规定我们必须用哪一种,只要能实现需求即可
示例
class Hero(object):
def set_info(self):
# 下面定义的了3个实例属性,且给它们设置了初始值
self.name = "王老师"
self.age = 18
self.address = "山东青岛"
def print_info(self):
print(self.qq, self.email)
# 创建实例对象
hero = Hero()
# 调用方法,从而让第4、5、6行被执行,从而完成实例对象的属性添加
hero.set_info()
# 通过对象方式直接获取属性
print(hero.name, hero.age, hero.address)
# 给对象添加额外的属性
hero.qq = 123456
hero.email = "dong4716138@163.com" # 这是王老师真实的邮箱哦....
# 调用方法,在方法中获取qq、email
hero.print_info()
说明:
- 虽然上述的代码中展示了我们使用属性的灵活性,但也总感觉代码有些凌乱,所以后面我们将属性的定义都放到
__init__方法中
三、总结
- 用类创建出来的对象,我们一般称之为“实例对象”
- 实例方法,就是对象中的函数,实现了功能
- 实例属性,就是对象中的变量,实现了存储数据