python - 编写在 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
但如果这是正确的方法,我在互联网上找不到。我很高兴知道这是否是正确的方法,或者有一种我不熟悉的更好方法。
先感谢您
解决方案
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() 函数的源代码:
推荐阅读
- html - 更改其选择器正在使用的组件的样式
- node.js - findOneAndModify Mongoose 方法已被弃用但不是真的
- java - 数据库中的记录不更新
- python - 从均值、起始值和结束值绘制偏态分布
- java - 为什么阶段在恢复窗口时忽略新定义的位置?
- python - 如何在同一个 django 模型字段中存储比特币和美元?
- database - 如何从 DynamoDB 中获取所有最新属性值的集合?
- python - 如何在 Django 中更新模型字段后从 MySQL 数据库中查询数据
- javascript - 如何连接前端和后端
- command - 如何使用命令去除重音并保留汉字?