[英]Passing in command line argument to constructor
我试图在命令行中将参数传递给构造函数。
我在终端中使用文本编辑器并运行命令行。
import csv
import sys
class myScraper():
def __init__(self, fileName=""):
self.fileName = sys.argv
def test(self):
print(self.fileName)
def main():
obj = myScraper()
obj.test()
if __name__=='__main__':
main()
当我在命令行中输入以下内容时:
$ python Eithan.py hello
我期望打个招呼。
相反,我得到:
TypeError: init ()缺少1个必需的位置参数:'fileName'
为什么我错过一个论点? 我试图通过命令行而不是文件中传递所有参数。
如果要在命令行上传递参数,则可以sys.argv
。 但是,这不是很灵活。 使用Python的argparse
库会更好。
这里有几个链接:
请参见下面的代码。
正确的方法是通过main函数传递fileName。 请注意,如果脚本未从调用方获取参数,则main将使用空字符串。
import sys
class myScraper():
def __init__(self, fileName=""):
self.fileName = fileName
def test(self):
print(self.fileName)
def main(fileName):
obj = myScraper(fileName)
obj.test()
if __name__ == '__main__':
main(sys.argv[1] if len(sys.argv) > 1 else "")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.