【发布时间】:2021-05-04 10:12:43
【问题描述】:
Circle1 和Circle2 的区别或优势是什么?有没有比其他方法更正确的方法?唯一的好处就是在Circle2可以继承?
class Geometry(object):
def __init__(self, x, y):
self.ptsx = x
self.ptsy = y
class Circle1(Geometry):
def __init__(self, radius):
self.radius = radius
def area(self):
def circle_formula(radius):
return 3.14*radius
return circle_formula(self.radius)
class Circle2(Geometry):
def __init__(self, radius):
self.radius = radius
def area(self):
return self.circle_formula(self.radius)
@staticmethod
def circle_formula(radius):
return 3.14*radius
我知道正确的方法是Cicle2 的@staticmethod 将是一个类似area_formula 的函数,并且在继承它时重写它。但我的疑问是,如果我真的必须使用只存在于特定类中的辅助函数,那么实现它的最正确方法是什么?
【问题讨论】:
-
嗨,欢迎来到 SO!您的问题是基于意见的,因为从技术上讲,这两种方法都很好,而您要问的是个人喜好问题。我们尽量避免在此板上提出基于意见的问题。
标签: python oop methods static-methods