如何解决这个Python函数参数是什么意思?
我在线遇到了以下代码:
class Solution:
def myAtoi(self,str: str):
#function does something here
我对函数的第二个参数类型str:str
不熟悉。自变量的名称是什么?
我尝试用Google搜索它,似乎str
是自变量的名称。我以为您不能使用类型作为参数的名称。
有人可以解释它的工作原理吗?然后我该如何在函数中分别引用变量 str
和类型 str
?
解决方法
此函数是一个类的方法,该方法采用该类的一个实例(自身)和一个字符串,并且(应该)返回一个整数。 (名字Atoi是ascii到整数)。
冒号后面的部分是类型提示,它通过告诉用户您希望参数类型为str
来使代码对用户更友好,尽管Python不会为您强制执行该操作,您仍然可以将其他类型传递给该函数。
-> int
部分也是如此-这意味着该函数应返回一个整数(就像您正在编写的那样,应该是这种情况),但是Python不会再次执行该操作这是从函数返回的实际类型。
第一个str是变量的名称,该变量在函数范围内覆盖内置类型名称str
。 这是一种不良做法,应避免。这很混乱,可能会导致意外的错误和错误。
这是一个不好的做法,是因为它要求您使用变通方法来访问内置类型str
。
让我们看下面的示例:
def foo(str,a):
return str + str(a)
foo("Hello",5)
当尝试执行这段代码时,我们将收到一个TypeError
:
TypeError: 'str' object is not callable
由于该函数将不会尝试访问内置类型str
,因为该函数的作用域是,名称str
指的是局部变量(这也是一段令人困惑的代码)
如果我们要访问内置类型str
并保留变量名str
,我们将必须执行以下操作:
import builtins
def foo(str,a):
return str + builtins.str(a)
foo("Hello",5)
现在可以工作并返回给我们的Hello5
。
如您所见,最简单的解决方法是将变量名重命名为其他名称:)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。