Python面向对象-4.实例属性实例方法

Posted dong4716138

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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__方法中

三、总结

  • 用类创建出来的对象,我们一般称之为“实例对象”
  • 实例方法,就是对象中的函数,实现了功能
  • 实例属性,就是对象中的变量,实现了存储数据

以上是关于Python面向对象-4.实例属性实例方法的主要内容,如果未能解决你的问题,请参考以下文章

Python面向对象之类属性类方法静态方法

28.Python面向对象类:创建类&实例对象,私有属性,类里面的方法,类属性CRUD,常用内置类属性

28.Python面向对象类:创建类&实例对象,私有属性,类里面的方法,类属性CRUD,常用内置类属性

Python面向对象:一篇文章掌握面向对象的基础

Python之路-面向对象&继承和多态&类属性和实例属性&类方法和静态方法

Python面向对象—类属性和实例属性