gpt4 book ai didi

python - 无法使用简写 if/else 初始化/错误更正对象名称

转载 作者:太空宇宙 更新时间:2023-11-03 14:55:43 25 4
gpt4 key购买 nike

想不出更好的方法来问这个问题,但我正在初始化一个对象,对于名称,我尝试使用速记 if else 进行错误纠正,以防未输入字符串以外的任何内容。如果它不是字符串,那么他们必须重新输入它。尝试让我的代码更短并学习如何编写无错误的代码。

这是我的代码:

def __init__(self, name, price, quantity):
self.name = name if isinstance(name, str) else self.name = input()

它一直说没有使用nameisinstance。有没有更好的方法来纠正初始化对象的错误?

最佳答案

您的代码不起作用,因为您无法在条件表达式中进行赋值(sth1 if ... else sth2):

 def __init__(self, name):
self.name = name if isinstance(name, str) else self.name = input()

抛出:

  File "<ipython-input-23-a0246a5f014d>", line 3
self.name = name if isinstance(name, str) else self.name = input()
^
SyntaxError: can't assign to conditional expression

但是,您可以省略 else 之后的 self.name = (这就是 SyntaxError 的原因):

def __init__(self, name):
self.name = name if isinstance(name, str) else input()

这相当于:

def __init__(self, name):
if isinstance(name, str):
self.name = name
else:
self.name = input()

关于python - 无法使用简写 if/else 初始化/错误更正对象名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45599596/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com