前后端知识库 前后端知识库
首页
    • JavaScript
    • React
    • Vue
  • Python
  • Sanic
  • Linux
  • Ansible
归档
GitHub (opens new window)
首页
    • JavaScript
    • React
    • Vue
  • Python
  • Sanic
  • Linux
  • Ansible
归档
GitHub (opens new window)
  • Sanic

  • Python

    • Python 的动态类型介绍
    • 数字类型
    • Set类型
    • 字符串
    • 列表
    • 元组
    • 通用序列
    • 字典
    • 文件
    • 语句和语法
    • 赋值语句
    • 打印
    • if语句
    • loop循环
    • 迭代器和生成器
    • 文档
    • 函数
    • 作用域
    • 参数
    • 函数的高级特性
    • 模块
    • 模块包
    • 模块高级用法
    • 类 class
    • Python命名空间
    • 运算符重载
    • 类的设计模式
    • 类的高级主题
    • 异常
    • 异常对象
    • Unicode与字节串
    • 管理属性
    • 装饰器
    • 元类
    • 执行细节
  • backend
  • Python
devin
2023-09-09

Python命名空间

# Python 命名空间

1.有点号和无点号的变量名,会使用不同的方式处理

  • 无点号运算符的变量名,使用LEGB作用域规则查找名字

  • 有点好运算符的变量名,使用的是对象的命名空间查找名字

  • 模块的作用域以及类的作用域会对对象的命名空间进行初始化

    2.模块、类、实例对象的命名空间实际上是以字典的形式实现的,并由内置属性.__dict__表示

  • 属性点号运算其实内部就是字典的索引运算

  • 属性继承其实就是搜索链接的字典 >每个实例都有各自独立的命名空间字典。初始时为空字典。 >随着对self或者对象的属性赋值,命名空间字典不断扩张

    3.读取属性可以通过点运算符或者直接通过键索引:

  obj.attr #通过点运算符
  obj.__dict__['attr']#通过键索引
1
2

通过键索引时必须给出属性名字符串;通过点运算符时给出的是属性名(不是字符串)

4.dir函数可以输出对象的所有可访问属性,包括它继承的名字(以及其他一些内置的系统属性)
dir展示所有可访问属性

编辑 (opens new window)
上次更新: 2023/09/09, 12:09:00
类 class
运算符重载

← 类 class 运算符重载→

Theme by Vdoing | Copyright © 2023-2023 devin | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式