当前位置: 首页 > article >正文

Python--类中作用域

1、在面向对象编程中,主要的变量就是成员变量(属性)和局部变量

class Cat:
  # 属性
  name = None
  age = None
  
  # n1, n2, result为局部变量
  def cal(self, n1, n2):
      result = n1 + n2
      print(f"result={result}")

2、作用域的分类:属性作用域为整个类。即在整个类中,所有的成员方法都可以使用到属性。

class Cat:
    # 属性
    name = None
    age = None

    # n1, n2, result为局部变量
    def cal(self, n1, n2):
      result = n1 + n2
      print(f"result={result}")
      print(f"cal()使用属性name{self.name}")

    def cry(self):
      print(f"cry()使用属性name{self.name}")

    def eat(self):
        print(f"eat()使用属性name{self.name}")

cat = Cat()
cat.cal(10, 20)
cat.cry()
cat.eat()

 输出结果:

result=30
cal()使用属性nameNone
cry()使用属性nameNone
eat()使用属性nameNone

3、局部变量:成员方法中定义的变量,作用域在它的方法中

        若将局部变量用于其他的成员方法中,程序会报错,如下图所示。其中,result是cal方法中的局部变量,若将该变量用于cry成员方法中,则会报错。

4、属性和局部变量可以重名,访问时带上self,表示访问的属性,没有带self,则是访问局部变量

class Cat:
    # 属性
    name = None
    age = None

    def hi(self):
        name = "皮皮"
        print(f"name={name}")
        print(f"name={self.name}")
cat = Cat()
cat.hi()

运行结果: 

name=皮皮
name=None


http://www.kler.cn/a/273122.html

相关文章:

  • vue系列==vue组件
  • 软设师知识点-计算机网络
  • leetcode71:简化路径
  • 【C++】继承的理解
  • Pandas 数据可视化指南:从散点图到面积图的全面展示
  • Django ORM详解:外键使用(外键逻辑关联)与查询优化
  • 【精品】递归查询数据库 获取树形结构数据 通用方法
  • PSCA复位控制集成之复位信号
  • STM32使用常见错误合集(正在更新版)
  • sqllab第二十六A关通关笔记
  • 静态综合实验
  • 断言assert是什么?
  • #每天一道面试题# 什么是MySQL的回表查询
  • PyTorch学习笔记之基础函数篇(十五)
  • C/C++:有助于define宏定义-原文替换的例题
  • 深入解析JVM加载机制
  • 解决:visio导出公式为pdf图片乱码问题
  • Python笔记四之协程
  • [ComfyUI报错信息] 节点错误归类及处理办法(最新完整版)
  • ThreadLocal-内存泄露问题
  • 【LeetCode热题100】104. 二叉树的最大深度(二叉树)
  • 二级Java程序题--03综合应用:源代码(01-42)
  • 利用自定义 URI Scheme 在 Android 应用中实现安全加密解密功能
  • 【React】Vite创建React+TS项目
  • 类和对象(1)
  • Centos8安装wdCP