码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • python魔法__dir__和__dict__


    # 魔法方法dir, __dir__, __dict__
    
    
    class Student:
        address = "wh" # 类属性
        
        def __init__(self, name):
            self.name = name # 对象属性
            self._age = 20
            self.__tel = "123456"
            
        @staticmethod
        def static_func():
            ...
        
        
    # __dir__: 查看对象的方法和属性
    st = Student("zs")
    
    print(st.__dir__())
    # ['name', '__module__', 'address', '__init__', '__dict__', '__weakref__', '__doc__', '__new__', '__repr__', '__hash__', '__str__', '__getattribute__', '__setattr__', '__delattr__', '__lt__', '__le__', '__eq__', '__ne__', '__gt__', '__ge__', '__reduce_ex__', '__reduce__', '__getstate__', '__subclasshook__', '__init_subclass__', '__format__', '__sizeof__', '__dir__', '__class__']     
    
    # 将对__dir__返回值排序并包装为列表
    print(dir(st))
    # ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'address', 'name']
    
    # __dict__:是一个字典
    # 用于类,存储所有实例共享的属性和方法
    # 用于对象,存储对象所有属性和值,一般用于动态读取和设置属性
    
    print(Student.__dict__)
    # 存在address和static_func
    # {'__module__': '__main__', 'address': 'wh', '__init__': , 'static_func': )>, '__dict__': , '__weakref__': , '__doc__': None}
    
    print(st.__dict__)
    # {'name': 'zs', '_age': 20, '_Student__tel': '123456'}
    
    # 获取已存在属性
    print(st.__dict__['name']) # zs
    # 设置新属性
    st.__dict__["grade"] = 60
    print(st.__dict__.get("grade")) # 60
    
  • 相关阅读:
    数字化下烟草行业人力资源管理实践与思考
    华为机试:敏感字段加密
    长链贪心+虚树+类直径合并性+分块建树维护ST表:1008T4
    win10系统解决文件共享不安全, 需要smb1的问题
    虚方法与抽象方法区别
    【PSO】基于PSO粒子群优化的物料点货物运输成本最低值计算matlab仿真,包括运输费用、代理人转换费用、运输方式转化费用和时间惩罚费用
    LeetCode 40. Combination Sum II【回溯,剪枝】中等
    入门电机系列之1认识电机
    elementUI 在移动端使用的一些问题
    Qml Qt程序 打包部署
  • 原文地址:https://blog.csdn.net/CodeHouse/article/details/139889733
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号