【发布时间】:2019-01-03 19:40:48
【问题描述】:
我正在尝试创建一个程序,该程序从 argparse 输入中读取字符串并使用该字符串调用某个对象并将该对象用于函数的其余部分。
#!/usr/bin/python
import argparse
class car:
def __init__(self, color, year):
self.color = color
self.year = year
Beatle = car("blue", 1973)
parser = argparse.ArgumentParser()
parser.add_argument("--vehicleType")
args = parser.parse_args()
print("This "+args.vehicleType+ " is nice")
print("It was made:")
print(2018-args.vehicleType.year)
print("years ago")
但是,我不断收到此错误:
Traceback (most recent call last):
File "./test.py", line 17, in <module>
print(2018-args.vehicleType.year)
AttributeError: 'str' object has no attribute 'year'
我认为程序将 args.vehicleType 作为字符串读取,而我想将其作为对象读取。我该如何解决这个问题? - 干杯,并提前感谢! 〜哦。油炸
【问题讨论】:
-
是的,
args.vehicleType是一个字符串。将这样的字符串映射到像Beatle这样的对象是您自己的代码的责任。变量名Beatle引用了car对象。字符串 'Beattle' 没有引用它。 -
如何将字符串映射到对象上?
-
带字典。
-
你能解释一下吗?
-
你懂字典吗? Argparse 只是告诉你用户想要什么。由你来做点什么。
标签: python object command-line argparse