• 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__方法中

    三、总结

    • 用类创建出来的对象,我们一般称之为“实例对象”
    • 实例方法,就是对象中的函数,实现了功能
    • 实例属性,就是对象中的变量,实现了存储数据
  • 相关阅读:
    采用[ICONIX] 方法实践BLOG设计之二 [用例建模]
    Java平台AOP技术研究
    AOP技术基础
    使用 Windows Vista 的凭据提供程序创造自定义的登录体验
    采用[ICONIX] 方法实践BLOG设计之一 [问题域建模]
    软件工程知识体系全景图
    .Net平台AOP技术研究
    采用[ICONIX] 方法实践BLOG设计之四 [健壮性分析]
    采用[ICONIX] 方法实践BLOG设计之三 [需求复核]
    AOP——引言
  • 原文地址:https://www.cnblogs.com/dong4716138/p/15718135.html
Copyright © 2020-2023  润新知