首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError:__new__()缺少两个必需的位置参数:'shares‘和'price’

TypeError:__new__()缺少两个必需的位置参数:'shares‘和'price’
EN

Stack Overflow用户
提问于 2017-07-25 16:28:06
回答 1查看 3.5K关注 0票数 2

我正在尝试使用namedtuple

代码语言:javascript
复制
from collections import namedtuple
Stock = namedtuple('Stock', ['name', 'shares', 'price'])

def compute_cost(records):
    total = 0.0
    for rec in records:
        s = Stock(*rec)
        total += s.shares * s.price
    return total

with open('r.txt') as f:
    content = f.readlines()
    content = [x.strip() for x in content]   
    for i in content:
         p = compute_cost(i)
    print (p)

似乎我有问题,我想如何使用可能的论点。

代码语言:javascript
复制
  File "b74.py", line 15, in <module>
    p = compute_cost(i)
  File "b74.py", line 7, in compute_cost
    s = Stock(*rec)
TypeError: __new__() missing 2 required positional arguments: 'shares' and 'price'

这是我的文本文件

代码语言:javascript
复制
hmf Kiza 100 2.33
piz Miki 999 0.75
air Dush 500 8.50
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-25 16:43:50

这个错误消息意味着您没有向Stock()构造函数传递足够的参数。您的元组有3个元素,所以您需要将3个参数传递给构造函数。

但在这一行中:

代码语言:javascript
复制
for rec in records:

records是文件中的一行。因此,rec只是一个字符。

提示:for rec in records.split(" ")

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45297862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档