Python面向对象编程-1

源码 2024-10-7 02:26:30 48 0 来自 中国
一、面向对象根本概念


  • 天下上有许多人和事物,每一个都可以看做一个对象,而每个对象都有本身的属性和活动,对象与对象之间通过方法来交互。
  • 面向对象是一种以“对象”为中央的编程头脑,把要办理的标题分解成各个对象,创建对象的目标不是为了完成一个步调,而是为了描叙某个对象在整个办理标题的步调中的属性和活动。
  • 关注核心----谁来做
二、类和对象


  • 类是模板,对象 是根据 类 这个模板创建出来的,应该 先有类,再有对象
  • 类 只有一个,而 对象 可以有许多个,差别的对象 之间 属性 大概会各不雷同
  • 类 中界说了什么 属性和方法,对象 中就有什么属性和方法,不大概多,也不大概少
留意:在步伐开辟中,要筹划一个类,通常必要满意一下三个要素:

1.类名 这类事物的名字,必要满意大驼峰定名法
2.属性 这类事物具有什么样的特性
3.方法 这类事物具有什么样的活动
三、语法布局:

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


  • 在 类的外部,通过变量名 访问对象的 属性和方法
  • 在 类封装的方法中,通过self访问对象的 属性和方法
    1.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()
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-10-18 16:44, Processed in 0.125218 second(s), 35 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表