gpt4 book ai didi

python - 最佳实践 : Class/Static Method

转载 作者:行者123 更新时间:2023-12-01 00:24:46 25 4
gpt4 key购买 nike

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

考虑以下类

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

两者给出相同的结果,但其中一种方法优于另一种方法吗?

最佳答案

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

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类的变量。

关于python - 最佳实践 : Class/Static Method,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58676012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com