微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

这个Python函数参数是什么意思?

如何解决这个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 举报,一经查实,本站将立刻删除。