+ -
当前位置:首页 → 问答吧 → 很基础的问题关于python

很基础的问题关于python

时间:2011-10-06

来源:互联网

初学python
在看python灰帽子一书
from ctypes import *
class barley_amount(Union):
  _fields = [
  ("barley_long", c_long),
  ("barley_int",c_int),
  ("barley_char",c_char *8),
  ]
value=raw_input("Enter the amount of barley to put into the beer vat:")
my_barley=barley_amount(int(value))
print "Barley amount as along:%ld "% my_barley.barley_long
print "Barley amount as an int:%d" % my_barley.barley_int
print "Barley amount as a char :%s" %my_barley.barley.barley_char

书里面的代码 错误提示
  my_barley=barley_amount(int(value))
TypeError: too many initializers

求教

作者: evi10r   发布时间: 2011-10-06

很多人都是从2.X入手的啊,不是很熟悉2.x的语法。你貌似把Union看成是构造函数的参数了?Union其实是父类。你的class barley_amount没实现__init__(self),(可以认为是构造函数),my_barley=barley_amount(int(value))实例化时你又传入了一个value参数,当然报too many的错咯,如果我没理解错你的意图,应该改为:

Python code

class barley_amount(Union):   #如果Union不是父类,则去掉
    def __init__(self,value): #可以看做是构造函数,但是不是
        self._fields = 
        [
        ("barley_long", c_long),
        ("barley_int",c_int),
        ("barley_char",c_char *8),
        ]



作者: yby4769250   发布时间: 2011-10-06

热门下载

更多