我无法在Python中初始化类

0 投票
3 回答
1607 浏览
提问于 2025-04-16 10:39

我有一个叫做Flight的类,我在尝试初始化它的时候,遇到了语法错误。

print x=Flight(flightFromInput='nebrasca')

这是我示例文件的内容。

class Flight:
    flightFrom = None
    flightTo = None
    departureDate = None
    arrivalDate=None
    airline=None
    serviceClass=None
    departureAirport = None
    arrivalAirport=None


    #----------------------------------------------------------------------
    def __init__(self,flightFromInput):
        self.flightFrom = flightFromInput

print x=Flight(flightFromInput='nebrasca')

这段代码有什么问题呢?

3 个回答

1

跟C语言不一样,在Python中,赋值操作只是一个语句,而不是一个表达式。因此,赋值操作本身没有返回值。你可以试试这个:

x = Flight(flightFromInput='nebrasca')
print x
4

在Python中,赋值语句不会返回你赋的值。所以你不能在其他语句中直接使用它。正如其他回答所提到的,你可以通过在单独的一行中打印 x 来解决这个问题。

不过,要注意有一些例外情况:

a = b = 0 # works
a = (b = 0) # does not work

第一个情况是为了方便而允许的特殊情况,当你想把同一个值赋给多个变量时。第二个情况则是你明确告诉编译器 b=0 是一个独立的语句,但因为它不返回值,所以外面的赋值给 a 会导致语法错误。

希望这样能更清楚地解释为什么在赋值后你应该做 print x

8

你应该写

x = Flight(flightFromInput='nebrasca')
print x

撰写回答