美文网首页Python进阶js css html
Python面向对象编程-1

Python面向对象编程-1

作者: 技术老男孩 | 来源:发表于2023-01-11 11:01 被阅读0次

    一、面向对象基本概念

    • 世界上有很多人和事物,每一个都可以看做一个对象,而每个对象都有自己的属性和行为,对象与对象之间通过方法来交互。
    • 面向对象是一种以“对象”为中心的编程思想,把要解决的问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个对象在整个解决问题的步骤中的属性和行为。
    • 关注焦点----谁来做

    二、类和对象

    • 类是模板,对象 是根据 类 这个模板创建出来的,应该 先有类,再有对象
    • 类 只有一个,而 对象 可以有很多个,不同的对象 之间 属性 可能会各不相同
    • 类 中定义了什么 属性和方法,对象 中就有什么属性和方法,不可能多,也不可能少
    注意:在程序开发中,要设计一个类,通常需要满足一下三个要素:

    1.类名 这类事物的名字,需要满足大驼峰命名法
    2.属性 这类事物具有什么样的特征
    3.方法 这类事物具有什么样的行为

    三、语法结构:

    # 创建类
    class 类名:
    
        def 方法1(self, 参数列表):
            pass            # pass是占位符
      
        def 方法2(self, 参数列表):
            pass
    
    # 创建对象
    对象引用 = 类名(参数列表)
    

    三、self 参数:

    • 在 类的外部,通过变量名 访问对象的 属性和方法
    • 在 类封装的方法中,通过self访问对象的 属性和方法
      self图例.png
    • self使用示例:
    class BearToy:
        def speak(self):
            print("你好我是" + self.color + "色的泰迪~")
    
    bear01 = BearToy()
    bear01.color = "red"  # 给熊添加颜色属性并赋值
    bear01.speak()
    
    bear02 = BearToy()
    bear02.color = "yellow"  # 给熊添加颜色属性并赋值
    bear02.speak()
    

    四、__init__初始化方法:

    • __init__()方法在创建对象时会被自动调用
    • __init__()是专门用来定义一个类 具有哪些属性的方法
    • __init__()使用示例:
    class BearToy:  # 定义类BearToy
        def __init__(self, color):
            print("对象初始化")
            self.color = color
        def speak():
            print("颜色: " + self.color + ",大小:" + self.size)
    if __name__ == "__main__":
        tidy01 = BearToy("red", "big")
        tidy01.speak()
        tidy02 = BearToy("yellow", "small")
        tidy02.speak()
    

    五、函数编程练习:

    需求:

    • 创建游戏角色类
    • 游戏人物角色拥有名字、武器等属性
    • 游戏人物具有攻击的方法
    • 武器通过武器类实现
    class Role:             #定义类Role【拥有相同属性和方法的对象的集合】
        def __init__(self, name, weapon):       #__init__() 可以指定每一个对象独有的属性
            self.name = name            #self 为实例本身的名称
            self.weapon = weapon        #self 为实例本身的名称
    #类方法,即类中定义的函数,可以由对象去调用
        def attack(self, target):       #self 为实例本身的名称
            print('我是%s, 正在攻击%s' % (self.name, target))
    
    if __name__ == '__main__':
        lb = Role('吕布', '方天画戟')     #根据Role类创建一个具体的对象lb
        print(lb.name, lb.weapon)       #打印对象lb的名字和武器
        lb.attack('张飞')                #让对象调用类方法attack()
    

    相关文章

      网友评论

        本文标题:Python面向对象编程-1

        本文链接:https://www.haomeiwen.com/subject/lhzwqdtx.html