jon*_*two 5 python lint docstring pycharm
好吧,这个问题可能已经在某个地方得到了回答,但我的 Google-fu 还没有找到正确的关键字组合。
我有一个接受字符串的函数,但是当我传递 None 时,Pycharm 的检查会标记类型错误。这是 linter 中的错误吗?None 算作字符串吗?我知道我可以使用空字符串调用该函数,但我认为我也应该能够使用 None 。
def my_func(some_str):
""" does something
Arguments:
some_str (str): a string
"""
# do something
...
my_func(None) <-- throws Expected type 'str', got 'None' instead
Run Code Online (Sandbox Code Playgroud)
作为一个不同意见,Python 不是强类型的,因此 pycharm 的 linter 强调这一错误对我来说似乎有点奇怪。
当然,有许多函数合法地需要字符串,但我确信我在某个地方看到了“良好实践”,它是一个看起来更像这样的函数:
def myfunct(s):
try:
s = str(s)
except TypeError:
raise TypeError('message explaining function usage')
# actual function
Run Code Online (Sandbox Code Playgroud)
这适用于任何可以强制转换为字符串的内容,这似乎比字面意义上的字符串更明智。
我疯了吗?
| 归档时间: |
|
| 查看次数: |
4592 次 |
| 最近记录: |