首页 > 解决方案 > 编写在 Python 中执行相同操作的函数和方法的正确方法

问题描述

我想了解编写相同的函数和类方法的编写方法是什么。例如,在 numpy 中,我可以通过all()两种方式使用该函数:

import numpy as np
x = np.ones(5)
x.all()
np.all(x)

一个更具体的例子如下:假设我为圆圈编写了一个模块。该模块包含类“Circle”,并且该类具有名为 get_area 的方法:

class Circle:
    def __init__(self, r):
        self.r = r

    def get_area(self):
        return 3.14 * self.r**2

现在,假设我还希望这个模块有一个函数来计算某个圆的面积(独立于类):

def get_area(r):
    return 3.14 * r**2

我认为这种写法是多余的。我会写这个模块如下:

class Circle:
    def __init__(self, r):
        self.r = r

    def get_area(self):
        return get_area(self.r)

def get_area(r):
    return 3.14 * r**2

但如果这是正确的方法,我在互联网上找不到。我很高兴知道这是否是正确的方法,或者有一种我不熟悉的更好方法。

先感谢您

标签: pythonpython-3.x

解决方案


from math import pi

class Circle:
    def __init__(self, r):
        self.radius = r

    def get_area(self):
        return pi * self.radius**2

给出:

>>> c = Circle(1)
>>>
>>> c.radius
1
>>> c.get_area()
3.141592653589793
>>> Circle.get_area(c)
3.141592653589793

正如@Tomerikoo 所说,你的很好。

至于 all() 函数的源代码:


推荐阅读