如何从argparse的输入中获取字符串并将其用作对象

时间:2018-07-26 18:09:08

标签: python object command-line argparse

我正在尝试创建一个程序,该程序会从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作为字符串,而我想将其作为对象读取。我该如何解决? -干杯,并预先感谢! 〜O。炒

2 个答案:

答案 0 :(得分:1)

以后可以实际创建对象吗?遵循以下原则:

#!/usr/bin/python
import argparse
class car:
    def __init__(self, color, year, type):
        self.color = color
        self.year = year
        self.type = type

parser = argparse.ArgumentParser()
parser.add_argument("--vehicleType") # Accept the argument as vehicle type.
args = parser.parse_args()

Beatle = car("blue", 1973, str(args.vehicleType)) # Now create the object.

print("This " + Beatle.type+ " is nice") # Use it here.
print("It was made:")
print(2018-Beatle.year) # And here.
print("years ago.")

答案 1 :(得分:0)

制作汽车词典

Map