Rab*_*ski 9 parameters design-patterns
是否有任何设计模式或干净的方法来进行功能/方法参数检查(针对允许的值)?
目前,我的函数中的许多初始代码都包含这些参数检查(空字符串,无效字符,现有id,...),并且在必要时,它有点难看并且混淆了函数的"真实"代码.通常,我的代码是这样的:
def my_function(p1,p2,p3,p4):
#check parameters
if p1 == ''
raise InvalidArgError('p1 can not be empty')
if p1 not in valid_list:
raise InvalidArgError('p1 does not exist')
if p2 < 0:
raise InvalidArgError('p2 can not be negative')
...
#finally do something
p = p2+p3
Run Code Online (Sandbox Code Playgroud)
对于解决方案,我正在思考Python中的装饰器.
我正在使用Python,虽然我想一个好的解决方案是与语言无关的.
我想不是真的,没有一种统一的方法来做到这一点。
我个人在我的函数中澄清了这一点:如果需要进行大量参数检查(随机示例),则真正的代码从何处开始:
def setpoint(x, y):
# checking for out of bounds
if x < 0 or x >= maxwidth: return false
if y < 0 or y >= maxheight: return false
# start function
map[x][y] = true
Run Code Online (Sandbox Code Playgroud)
也许您应该考虑将函数拆分为更小的函数,以分散参数检查。
| 归档时间: |
|
| 查看次数: |
163 次 |
| 最近记录: |