首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >最佳实践:类/静态方法

最佳实践:类/静态方法
EN

Stack Overflow用户
提问于 2019-11-03 07:01:03
回答 1查看 130关注 0票数 1

我想知道关于类和静态方法的最佳实践是什么。

考虑一下下面的类

代码语言:javascript
复制
class A:
    number = 0

    @classmethod
    def add_int_m(cls, m: int) -> int:
        return cls.number + m

    @staticmethod
    def add_int_k(k: int) -> int:
        return A.number + k

这两种方法给出了相同的结果,但其中一种方法比另一种更受欢迎吗?

EN

回答 1

Stack Overflow用户

发布于 2019-11-03 07:12:56

如果你在使用类变量,你肯定想使用@classmethod,而不是@staticmethod。想象一下B类扩展了A类:

代码语言:javascript
复制
class A:
    number = 0

    @classmethod
    def add_int_m(cls, m: int) -> int:
        return cls.number + m

    @staticmethod
    def add_int_k(k: int) -> int:
        return A.number + k

class B(A):
    pass


B.number = 10

B.add_int_m(1)  # returns 11
B.add_int_k(1)  # returns 1

静态方法add_int_k仍然使用类A的变量。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58676012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档