面向对象程序设计一(Python中的概念、类、类属性、类方法)

注意:本章笔记代码模块中的__,部分场景由于显示问题,将双下划线连接在一起,实际上为双下划线(编译环境中显示样式:_ _)

  • 概念

    • 面向对象编程:定义类→实例化→执行动作
      • eg. 把水蜜桃装进冰箱(Hint:水蜜桃属于水果类)
      • 面向对象:定义类(水果)→实例化(水蜜桃)→执行动作(把水蜜桃放进冰箱)
      • 面向过程:打开冰箱(怎么打开)→装水蜜桃(怎么装)→关闭冰箱(怎么关闭)
      • 对比,处理新水果:西瓜
        • 面向对象:实例化新实例(西瓜)→执行动作
        • 面向过程:西瓜比水蜜桃大,思考怎么装进冰箱;西瓜太重,怎么顺手开冰箱
    • 定义

    • 实例化

      • () 不可少
# 定义方法:
class Classname:    # 定义规范,类名首字母大写
    pass
# ---------------------------------------------------------------------------------
# 实例化
example = Classname() # ()不可少

  

  • 补充知识

    • 对象三特征:value,id,type
    • 函数:面向过程
    • 方法:面向对象
      • 特例:类中的_ _init_ _为构造函数
    • 显示类包含的内容 : classname._ _dict_ _()
    • 构造函数:构造实例的进程函数
      • 语法 : def _ _init_ _(self):
      • self表示当前实例,不可缺少
      • 不能设置return值
      • class执行当前实例的函数
    • 方法:
      • 包含普通方法和类方法
      • 语法 : def methodname(self)
      • self表示当前实例
      • 任意返回值
      • 调用类中方法的语法 : Classname.methodname()
        • self不用输入参数
    • 显示类包含的内容 : classname._ _dict_ _()
      • 特例:类中的_ _init_ _为构造函数
    • eg.
class Game:
    # self 表示类实例化后的当前实例
    def __init__(self):    # 建立构造函数
        pass
    # 不能设return值,否则报错
    def methodname(self):    # 定义普通方法,类方法下文会提到
        pass
    # 正常设置return值
  • 类属性

    • classname._ _dict_ _ 显示类/
    • 类属性由类下所有实例共享

仅访用的定义:

  • 可以访问类属性,使用方法(含类方法),但数据不在实例dict里,默认方式为访问 
  • 实例仅访用类
    • 可以访问类属性,使用方法(含类方法),但数据不在实例dict里,默认为访问
    • 若实例无新定义类属性:
      • print自动打印类属性(默认设置为访问)
      • ._ _dict_ _显示实例无类属性
# 验证实例仅访用类
# 实例仅访用类定义:
# 实例可以访问类属性,使用方法(含类方法),但数据不在实例dict里,默认方式为访问
class Game:
    system = 'mobile game'  # 类属性:所有实例可以访问
    type = 'MOBA'   # 类属性:所有实例可以访问

wzry = Game()   # 类的实例化,游戏类:王者荣耀wzry
print(wzry.type)
print(Game.__dict__)
print('没有新定义实例属性后,实例的dict:')
print(wzry.__dict__)

jdqs = Game()
jdqs.type = 'FPS'
print('新定义实例属性后,实例的dict:')
print(jdqs.__dict__)
  • 输出结果:
    • 解释:
    • 第6行语句输出MOBA,表示实例的type属性可以访问类属性type(MOBA)
    • 第9行语句输出实例的dict显示为空,表示实例dict无类属性type
    • 第6、9行语句验证了实例仅访用类的概念
    • 第12行语句新定义实例的type属性
    • 第14行语句输出实例的dict显示含新定义的'FPS',表示实例dict有属性type='FPS'

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是羽十八ya

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值