Непонятный синтаксис Python / ошибки - PullRequest
0 голосов
/ 28 апреля 2011

Я получаю сообщение об ошибке:

NameError: имя '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

Я взял этот пример из книги и даже скопировал его, когда продолжал получать ошибки. Я использую PyDev с затмением. У кого-нибудь есть идеи о том, что здесь происходит? О, Python 2.7.1 я тоже использую.

Ответы [ 2 ]

5 голосов
/ 28 апреля 2011

Отступы важны в Python. И последняя часть (начинается с `from ctypes в строке 13) неверна. Истинный код:

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
0 голосов
/ 23 января 2014

Я тоже долго тратил голову на это, у вас нет пустой строки после окончания объединенияуже упомянутый случайный ctypes снова импортируется в конце.

...