【问题标题】:Unclear Python Syntax/Errors不清楚的 Python 语法/错误
【发布时间】:2011-08-14 22:00:45
【问题描述】:

我收到一个错误:

NameError: name 'barley_amount' 未定义

这是我的代码:

    from ctypes import *

class barley_amount(Union):
    _fields_ = [
                ("barley_long", c_long),
                ("barley_int", c_int),
                ("barley_char", c_char)
                ]
    value = raw_input("Enter the amount of Barley to put into the beer vat: ")
    my_barley = barley_amount(int(value))
    print "Barley amount as a long: %ld" % my_barley.barley_long 
    print "Barley amount as an int: %d" % my_barley.barley_long
    print "Barley amount as a char: %s" % my_barley.barley_char`from ctypes import *

    my_barley = barley_amount(int(value))
    print "Barley amount as a long: %ld" % my_barley.barley_long 
    print "Barley amount as an int: %d" % my_barley.barley_long
    print "Barley amount as a char: %s" % my_barley.barley_char

我从书中拿了这个例子,当我不断出错时,甚至复制发布了它。我在 Eclipse 中使用 PyDev。有人知道这里发生了什么吗?哦,我也在用 Python 2.7.1。

【问题讨论】:

  • utdmr 的回答说明了如何解决问题,但是具体错误信息的原因是在执行类定义的主体时,barley_amount 尚未定义。

标签: python eclipse eclipse-plugin pydev


【解决方案1】:

缩进在 Python 中很重要。最后一部分(从第 13 行的 `from ctypes 开始)是错误的。真正的代码是:

from ctypes import *

class barley_amount(Union):
    _fields_ = [
                ("barley_long", c_long),
                ("barley_int", c_int),
                ("barley_char", c_char)
                ]

value = raw_input("Enter the amount of Barley to put into the beer vat: ")
my_barley = barley_amount(int(value))
print "Barley amount as a long: %ld" % my_barley.barley_long 
print "Barley amount as an int: %d" % my_barley.barley_long
print "Barley amount as a char: %s" % my_barley.barley_char

【讨论】:

    【解决方案2】:

    我也花了很长时间在这个问题上,你在联合“]”结束后没有空行

    在 value 之前添加一个空格,它应该可以在最后找到其他已经提到的随机 ctypes 导入。

    【讨论】:

      猜你喜欢
      • 2017-05-28
      • 2015-08-23
      • 1970-01-01
      • 2017-10-06
      • 1970-01-01
      • 2016-05-04
      • 2022-01-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多