我不能用python初始化类

我不能用python初始化类,python,class,Python,Class,我有一个类飞行,我正在尝试初始化它,但我在中有一个语法错误 print x=Flight(flightFromInput='nebrasca') 这是我的示例文件的内容 class Flight: flightFrom = None flightTo = None departureDate = None arrivalDate=None airline=None serviceClass=None departureAirport =

我有一个类飞行,我正在尝试初始化它,但我在中有一个语法错误

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')
这段代码有什么问题吗?

您应该编写

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

与C相反,在Python中,赋值只是语句而不是表达式。因此,它们没有自己的价值。试试这个:

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

在python中,赋值语句不返回赋值。所以不能在另一个语句中使用它。正如其他答案所建议的,您可以通过在单独的行中打印
x
来解决此问题

请注意,但也有例外情况:

a = b = 0 # works
a = (b = 0) # does not work
第一种情况是一种特殊情况,当您希望将相同的值分配给多个变量时,为了方便起见,可以使用这种情况。在第二种情况下,您清楚地告诉编译器,
b=0
是一个单独的语句,但由于它不返回值,对
a
的外部赋值会导致产生语法错误


希望这能解释得更清楚一点,为什么你应该在赋值后打印x。

写下你得到的错误总是一个好主意。另外:你是否意识到在类范围内创建的变量(在你的代码中,上面的每个赋值都是
----…
)是类变量,即在实例之间共享,而不是实例变量(
self…
)?@delnan:类变量可以作为后备变量。如果在实例上分配给
.flightFrom
,则不会更改类变量,因此在语义上这是可以的。(不过你可能对这种风格有异议。)@Sven:这就是为什么我问“你意识到了吗”而不是写“你的代码可能已经坏了”。但是,是的,我确实想知道这是否是最好的解决方案。@S.Lott:期望赋值是一个表达式并不是完全不合理的(有很多流行语言都这样做)。特别是考虑到OP似乎知道其中的一些问题(例如问C#问题)。