Why and how to resolve shadows argument name from outer scope in class (python) ?
from optparse import OptionParser
class Test(object):
def __init__(self):
pass
def _test1(self, some_val):
print(some_val)
def main(self, some_val):
self.test1(some_val)
if __name__ == "__main__":
parser = OptionParser()
parser.add_option("-a", "--abcd", dest="abcd", default=None,
help="some_val")
(options, args) = parser.parse_args()
some_val = options.abcd
mainobj = Test()
mainobj.main(some_val)
In above code
- argument
'some_val'
in'main'
and'_test'
, displays shadows'some_val'
from outer scope. - at method
'_test'
, displays'_test'
may be static.
Pycharm, Python 3.8
Why those ? And how can I resolve them ?