Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
';str';对象在python中不可调用_Python_Visual Studio_Runtime Error - Fatal编程技术网

';str';对象在python中不可调用

';str';对象在python中不可调用,python,visual-studio,runtime-error,Python,Visual Studio,Runtime Error,我在password()函数中调用这个函数password(),希望它能重新开始。然后是“str”对象错误 代码: 错误: 我不知道是否有人在谈论userName=input(“输入注册用户名”)或其他东西。哦,顺便说一句,这不是一个编译错误,而是一个运行时错误,如果我没有键入正确的密码(即'comics123') 我要问的问题是,是否有其他方法调用密码() 函数,它不会出现此错误,或者是一种重复询问用户密码是否不正确的方法。提前感谢。您的问题在这一行: password = input("\

我在
password()
函数中调用这个函数
password()
,希望它能重新开始。然后是“str”对象错误

代码:

错误:

我不知道是否有人在谈论
userName=input(“输入注册用户名”)
或其他东西。哦,顺便说一句,这不是一个编译错误,而是一个运行时错误,如果我没有键入正确的密码(即'comics123')

我要问的问题是,是否有其他方法调用
密码()

函数,它不会出现此错误,或者是一种重复询问用户密码是否不正确的方法。提前感谢。

您的问题在这一行:

password = input("\tenter password ) ")

在该范围内的这一行
password
之后是这个字符串变量,而不是函数。只需将此变量重命名为其他变量即可解决问题。

您的问题在这行:

password = input("\tenter password ) ")
    if confirm == "y":
        password = input("\tenter password ) ")
在该范围内的这一行
password
之后是这个字符串变量,而不是函数。只需将此变量重命名为其他变量即可解决此问题

    if confirm == "y":
        password = input("\tenter password ) ")
您在此处定义了一个名为
password
的变量,它隐藏了在顶层定义的
password()
函数

        if password == "comics123":
            menu()

        else:
            print("Password is Incorrect")
            sleepFor(2000)
            password()
在这里,您可以尝试调用作为输入的字符串,就好像它是一个方法一样

您需要做的是为字符串和函数使用不同的名称。我建议调用类似于
request\u password
input\u password
的函数

您在此处定义了一个名为
password
的变量,它隐藏了在顶层定义的
password()
函数

        if password == "comics123":
            menu()

        else:
            print("Password is Incorrect")
            sleepFor(2000)
            password()
在这里,您可以尝试调用作为输入的字符串,就好像它是一个方法一样


您需要做的是为字符串和函数使用不同的名称。我建议调用类似于
request\u password
input\u password
的函数
password()
调用失败,因为您错误地选择将标识符
password
作为局部变量覆盖(通过
password=input(\tenter password)”)
语句!)因此,隐藏与其一致的全局(函数)名称。对局部变量使用不同的标识符,例如
passwd=input(“\tenter password)”)
(当然,使用
passwd
引用刚刚输入的字符串!-),这样就可以了。

密码()
调用失败,因为您错误地选择将标识符
密码作为本地变量覆盖(通过
password=input(“\tenter password)”)
语句!)因此,隐藏与其一致的全局(函数)名称。对局部变量使用不同的标识符,例如
passwd=input(“\tenter password)”)
(当然,使用
passwd
引用刚刚输入的字符串!-),这样就可以了。

顺便说一句,您不应该通过原始字符串检查密码的正确性。这是难以置信的容易破解。您应该考虑将salt与诸如PBKDF2之类的散列算法一起使用,并以这种方式使用它。没有数据库吗?至少在某个地方使用平面文件存储,并对此进行检查,使其仅对调用该程序的管理员帐户进行读取。@Vincenzzochi密码存储在本地,并保护用户完全控制的本地资源(从我收集的信息中)。世界上没有任何哈希可以提高这里的安全性。@jd。如果打算设置一个密码,用户只能在本地计算机上访问此脚本中的菜单,决不接受来自外部世界的任何其他用户的任何其他密码,则是的,您是正确的。然而,详细阐述标准编码原则并不牵强。如果他/她希望编写任何涉及多个与外部世界交互的用户的代码。那么这就不正确了。我不想把任何人引向不完美的方向。顺便说一句,你不应该用原始字符串检查密码的正确性。这是难以置信的容易破解。您应该考虑将salt与诸如PBKDF2之类的散列算法一起使用,并以这种方式使用它。没有数据库吗?至少在某个地方使用平面文件存储,并对此进行检查,使其仅对调用该程序的管理员帐户进行读取。@Vincenzzochi密码存储在本地,并保护用户完全控制的本地资源(从我收集的信息中)。世界上没有任何哈希可以提高这里的安全性。@jd。如果打算设置一个密码,用户只能在本地计算机上访问此脚本中的菜单,决不接受来自外部世界的任何其他用户的任何其他密码,则是的,您是正确的。然而,详细阐述标准编码原则并不牵强。如果他/她希望编写任何涉及多个与外部世界交互的用户的代码。那么这就不正确了。我不想把任何人引向不完美的方向,这正是python中的调用层次结构。。局部变量,在这种情况下,“密码”被找到并且不可调用,然后是全局变量。然而,我相信如果他说
global password\nsleepFor(2000)\npassword()
@Vincenzzochi,而不是给标识符
password
,他就可以绕过这个问题——试试看!正如我所说,他必须使用不同的标识符(对于函数和/或变量)。。局部变量,在这种情况下,“密码”被找到并且不可调用,然后是全局变量。但是,我相信如果他说
全局密码\n leepfor(2000)\n密码()
@vincenzzochi,而不是分配给标识符,他就可以绕过这个问题