কিভাবে ব্যবহার সম্পর্কে parser.parse_known_args()
পদ্ধতি এবং তারপর যোগ --lport
এবং --rport
প্রয়োজনীয় args যেমন args যদি --prox
উপস্থিত।
# just add --prox arg now
non_int = argparse.ArgumentParser(description="stackoverflow question",
usage="%(prog)s [-h] [--prox --lport port --rport port]")
non_int.add_argument('--prox', action='store_true',
help='Flag to turn on proxy, requires additional args lport and rport')
opts, rem_args = non_int.parse_known_args()
if opts.prox:
non_int.add_argument('--lport', required=True, type=int, help='Listen Port.')
non_int.add_argument('--rport', required=True, type=int, help='Proxy port.')
# use options and namespace from first parsing
non_int.parse_args(rem_args, namespace = opts)
এ ছাড়াও মনে রাখবেন যে opts
দ্বিতীয় যুক্তিটি দ্বিতীয়বার পার্স করার সময় আপনি প্রথম পার্সিংয়ের পরে উত্পন্ন নেমস্পেস সরবরাহ করতে পারেন । এইভাবে, শেষ পর্যন্ত, সমস্ত বিশ্লেষণ শেষ হওয়ার পরে, আপনার সমস্ত বিকল্পের সাথে একটি একক নেমস্পেস থাকবে।
অপূর্ণতা:
- যদি
--prox
উপস্থিত না হয় তবে অন্যান্য দুটি নির্ভরযোগ্য বিকল্পগুলি নামস্থানে উপস্থিত হয় না। যদিও আপনার ব্যবহারের ভিত্তিতে, যদি --prox
উপস্থিত না থাকে তবে অন্যান্য বিকল্পগুলির ক্ষেত্রে যা ঘটে তা অপ্রাসঙ্গিক।
- পার্সার সম্পূর্ণ কাঠামো জানেন না বলে ব্যবহারের বার্তাটি পরিবর্তন করতে হবে
--lport
এবং --rport
সহায়তা বার্তায় প্রদর্শিত হবে না