Skip to main content
 首页 » 编程设计

python之意外标记 'not' 仅在同一行中发生

2025年05月04日15www_RR

所以这是一个关于问题缩进引入的歧义的问题,而不是不是的问题。

==============原始问题==============

我正在使用 Visual Studio。基本上这是我遇到的简化示例:

class sample(): 
    def __init__(self): 
        self.xData = [0] 
        self.yData = [0] 
    def trySomething(self, x = [], y = []): 
        if not x: x = self.xData; if not y: y = self.yData 
        #BlaBlaBla 

这里我想检查 x 和 y 是否有输入,如果没有,则使用类本身的变量。但是,它无法运行,if not y: 带有红色波浪线下划线,表示 Unexpected token 'not',如下所示: 有线的事情是,一旦我将它分成另一行,事情就会得到解决:

class sample(): 
    def __init__(self): 
        self.xData = [0] 
        self.yData = [0] 
    def trySomething(self, x = [], y = []): 
        if not x: x = self.xData;  
        if not y: y = self.yData 
        #BlaBlaBla 

那么将它们写成一行有什么问题呢?或者这是 Visual Studio 的某种错误?

请您参考如下方法:

歧义。你指的是哪一个?

    if not x:  
        x = self.xData 
    if not y:  
        y = self.yData 

或

    if not x:  
        x = self.xData 
        if not y:  
            y = self.yData 

这里有更多详细信息:https://docs.python.org/3/reference/compound_stmts.html

TLDR 在这种情况下不要使用 ;