相关疑难解决方法(0)

"请求原谅不许可" - 解释

我不是要求对这种哲学提出个人的"宗教"观点,而是要更具技术性.

我理解这句话是几个试金石中的一个,看你的代码是否是"pythonic".但对我来说,pythonic意味着干净,简单和直观,没有加载异常处理程序以进行错误的编码.

所以,实际的例子.我定义了一个类:

class foo(object):
    bar = None

    def __init__(self):
        # a million lines of code
        self.bar = "Spike is my favorite vampire."
        # a million more lines of code
Run Code Online (Sandbox Code Playgroud)

现在,来自程序背景,在另一个函数中,我想这样做:

if foo.bar:
    # do stuff
Run Code Online (Sandbox Code Playgroud)

如果我不耐烦并且没有做初始的foo = None,我会得到一个属性异常.所以,"请求宽恕不许可"表明我应该这样做吗?

try:
    if foo.bar:
        # do stuff
except:
    # this runs because my other code was sloppy?
Run Code Online (Sandbox Code Playgroud)

为什么我在try块中添加额外的逻辑会更好,这样我可以让我的类定义更加模糊?为什么不先定义所有内容,然后明确授予权限

(不要打扰我使用try/except块......我在任何地方都使用它们.我不认为用它们来捕捉我自己的错误是正确的,因为我不是一个彻底的程序员.)

或者......我是否完全误解了"请求原谅"的口头禅?

python

58
推荐指数
7
解决办法
2万
查看次数

在 python 字典中为 mypy 指定键

假设我有一些代码

def get_x(d: dict) -> int:
    d["x"]
Run Code Online (Sandbox Code Playgroud)

但是,我想告诉 mypyd应该只包含某些键(例如只有“x”键)。这样,如果我在尝试引用无效键的代码中犯了错误d,mypy 将触发错误。

我的问题是:

  1. 这可能吗?mypy 可以验证字典键吗?
  2. 如果是,这是如何完成的?如果没有,是否有首选的解决方法?

python python-3.x mypy python-typing

7
推荐指数
1
解决办法
1848
查看次数

标签 统计

python ×2

mypy ×1

python-3.x ×1

python-typing ×1