class Lock:
def __init__(self):
self.key_code = "1234" # Change this to your desired key code
self.is_locked = True
def lock(self):
self.is_locked = True
def unlock(self, entered_code):
if entered_code == self.key_code:
self.is_locked = False
else:
print("Incorrect key code. Lock remains locked.")
def is_locked(self):
return self.is_locked
def main():
my_lock = Lock()
print("The lock is currently locked.")
while my_lock.is_locked():
entered code = input("Enter the key code: ")
my_lock.unlock(entered code)
print("The lock is now unlocked.")
if __name__ == "__main__":
main()
字符串
我写了这段代码,但它显示了一个
Type Error: 'bool' object is not callable
The lock is currently locked.
型
我一直试图创建一个锁定机制,但它显示一个类型错误。我试过很多方法,但还是不能解决它。
7条答案
按热度按时间q3qa4bjr1#
字符串
jhiyze9q2#
下面是Python中的一个锁和密钥函数的简单实现:
字符串
当您运行代码时,它将遵循以下步骤:
1系统提示用户输入所需的键码。2使用输入的键代码创建Lock类的示例。3程序通知用户锁当前已锁定。4它运行一个循环,不断要求用户输入钥匙代码,直到提供正确的钥匙代码,锁被解锁。6输入正确的钥匙密码后,循环中断,并打印消息“The lock is 7 now unlocked.(锁已解锁)”。
wyyhbhjk3#
你几乎在那里:你的代码中有一个小错误。构造函数方法应该命名为init(带双下划线),而不是init。ii.你有一个名为is_locked的示例变量和一个名为is_locked的方法。这可能导致冲突。我将该方法重命名为is_locked_status以避免冲突。iii.调用is_locked_status方法时,需要使用圆括号()来调用该方法并获取其返回值。
字符串
wribegjk4#
这里有两种方法来做到这一点。
字符串
这是可行的,但是你想使用getter来访问你的变量。
型
问题是变量和方法具有相同的名称。提示在错误中-它使用的变量认为它是一个方法,而不是使用同名的方法。将变量更改为
locked
使其工作。n3h0vuf25#
字符串
如果您想设置密码并将其保存以备将来使用,请尝试此代码
yftpprvb6#
字符串
试试这个代码
sxpgvts37#
这个问题是由于is_locked属性和is_locked()方法之间的命名冲突造成的。两者具有相同的名称,这导致了错误。为了解决这个问题,让我们将方法重命名为get_lock_status()而不是is_locked()。下面是更正的代码:
class Lock:definit(self):self.key_code =“1234”
self.is_locked = True
字符串