想不出更好的方法来问这个问题,但我正在初始化一个对象,对于名称,我尝试使用速记 if else 进行错误纠正,以防未输入字符串以外的任何内容。如果它不是字符串,那么他们必须重新输入它。尝试让我的代码更短并学习如何编写无错误的代码。
这是我的代码:
def __init__(self, name, price, quantity):
self.name = name if isinstance(name, str) else self.name = input()
它一直说没有使用name
和isinstance
。有没有更好的方法来纠正初始化对象的错误?
最佳答案
您的代码不起作用,因为您无法在条件表达式中进行赋值(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/