While the 'if var:' statement works correctly in Python IDE, it is not behaving the same when run from a Python script. Any idea why is that?
Code to reproduce the problem:
%%writefile if_var.py
import argparse
def if_var_fn(Flag):
if Flag:
print(f'Flag is True: {Flag}')
else:
print(f'Flag is False or None: {Flag}')
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Process Flag argument.')
parser.add_argument('Flag_', help='Enter Flag value')
args = parser.parse_args()
print(f'Value of args.Flag_: {args.Flag_}')
print('Running if var ...')
if_var_fn(args.Flag_)
The problem is that the passed argument always takes only one value: True
(base) /.../: python if_var.py 1
Value of args.Flag_: 1
Running if var ...
Flag is True: 1
(base) /.../: python if_var.py 0
Value of args.Flag_: 0
Running if var ...
Flag is True: 0