美文网首页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