码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 阐述以下方法 @classmethod, @staticmethod, @property?



    欢迎莅临我的博客 💝💝💝,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。

    在这里插入图片描述


    • 推荐:「stormsha的主页」👈,持续学习,不断总结,共同进步,为了踏实,做好当下事儿~
    • 专栏导航
      • 【Python 面试一】: Python面试推荐指数:★★★
      • 【Python 面试二】: Python面试推荐指数:★★★★
      • 【Python 面试三】: Python面试推荐指数:★★★★★
      • 【Python 面试四】: Python面试难度:初级
      • 【Python 面试五】: Python面试难度:中级
      • 【Python 面试六】: Python面试难度:高难

    非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

    💖The Start💖点点关注,收藏不迷路💖

    📒文章目录

    • 1. @classmethod
    • 2. @staticmethod
    • 3. @property


    在这里插入图片描述


    推荐指数: ★★★★           试题难度: 中级           试题类型: 八股文

    在Python中,@classmethod、@staticmethod 和 @property 是装饰器,它们用于定义类的方法和属性,但具有不同的用途和行为:

    1. @classmethod

    • @classmethod是一个装饰器,用于定义类方法。
    • 类方法是与类而不是类的实例相关联的方法。
    • 它们的第一个参数是类本身,通常用cls表示。
    • 可以通过类名直接调用类方法,也可以通过类的实例调用。

    示例代码:

    class MyClass:
        @classmethod
        def my_method(cls):
            print("This is a class method of", cls)
    
    MyClass.my_method()  # 通过类名调用
    

    2. @staticmethod

    • @staticmethod是一个装饰器,用于定义静态方法。
    • 静态方法与类或类的实例都没有关联,它们不接收类或实例作为第一个参数。
    • 静态方法可以看作是类内部的普通函数,但可以通过类名来调用。

    示例代码:

    class MyClass:
        @staticmethod
        def my_method():
            print("This is a static method of MyClass")
    
    MyClass.my_method()  # 通过类名调用
    

    3. @property

    • @property是一个装饰器,用于定义属性的访问器。
    • 它允许你将一个方法定义为属性,使得你可以使用点操作符来访问它。
    • 通常与@setter和@deleter装饰器一起使用,分别定义属性的设置和删除方法。

    示例代码:

    class MyClass:
        def __init__(self, value):
            self._my_attribute = value
    
        @property
        def my_attribute(self):
            return self._my_attribute
    
        @my_attribute.setter
        def my_attribute(self, value):
            self._my_attribute = value
    
        @my_attribute.deleter
        def my_attribute(self):
            del self._my_attribute
    
    instance = MyClass(10)
    print(instance.my_attribute)  # 使用@property访问属性
    instance.my_attribute = 20    # 使用@setter设置属性
    del instance.my_attribute      # 使用@deleter删除属性
    

    这些装饰器提供了强大的功能,使得Python中的类定义更加灵活和强大。


    🔥🔥🔥道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙


    💖The End💖点点关注,收藏不迷路💖
  • 相关阅读:
    Java递归实现迷宫问题和八皇后
    1.C语言初学——两数相加求和
    HC32_HC32F072FAUA_I2C的使用
    设计模式之备忘录模式
    【翻译论文】Urban land cover classification using airborne LiDAR data: A review(2014)
    Mybiosource丨Mybiosource月桂碱,抑制剂说明书
    【Azure 事件中心】Event Hub 无法连接,出现 Did not observe any item or terminal signal within 60000ms in 'flatMapMany' 的错误消息
    第四章黑盒测试
    简述几个我们对Redis 7开源社区所做的贡献
    [附源码]java毕业设计基于实时定位的超市配送业务管理
  • 原文地址:https://blog.csdn.net/sxc1414749109/article/details/140040225
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号