【发布时间】:2015-09-25 22:22:26
【问题描述】:
我有一个带有 init 和其他两种方法的类。在后两种方法中,是进行适当计算的附加方法。我想从我的命令行参数访问和使用选项(使用 argparse)。当您在类中的方法中有方法时,使用选项的适当方法是什么? 我的代码结构是:
class P(object):
def __init__(self, a, options):
self.a = a
self.b = None
self.weight = None
self.score = None
self.Firstscore = None
def calc_score(self, options):
self.b = #Method to calculate a float, using the string self.a (raw value)
def calc_weight(self, options):
if float(self.b) > options.valueFromCommandLine:
self.b_weight == 0
else:
self.b_weight == 100
return self.b_weight
self.weight = (self.calc_weight(self.b))
self.score = self.weight * options.valueFromCommandLine
self.Firstscore = self.score * constant
return self.Firstscore
我继续得到 AttributeError:“P”对象没有属性“valueFromCommandLine”。
当我更改哪个方法调用选项时,我得到 NameError:未定义全局名称“b”或
TypeError: 'calc_weight' 只需要 1 个参数(给定 2 个)
有人可以在此处提供适当的代码结构方面的帮助吗,我可以在类中的所有方法中使用选项吗?或者在这种情况下会更好的适当结构。
【问题讨论】:
-
我还在 python 中使用 -tt 运行了我的代码,以确保所有空格都正确缩进,这似乎不是问题
-
self.b = #计算浮点数的方法,使用字符串self.a(原始值)self.b右侧没有值
-
您不会将选项存储在类实例中。也许使用 self.options 将其存储在 init 中?
标签: python class methods options argparse