On Wed, Sep 14, 2016 at 2:34 AM, Daiyue Weng <daiyuew...@gmail.com> wrote: > Hi, I am using inner function like this, > > def timeit(func=None, loops=1, verbose=False): > if func is not None: > def inner(*args, **kwargs): > > # some code > > return inner > else: > def partial_inner(func): > return timeit(func, loops, verbose) > > return partial_inner > > > PyCharm warns about "Shadows name 'func' from outer scope" on > > def partial_inner(func): > > How to fix it? > > cheers
Hmm. I think the real solution here is to separate this into two functions: def timeit(func, loops=1, verbose=False): def inner(*args, **kwargs): # some code return inner def timeit_nofunc(loops=1, verbose=False): def partial_inner(func): return timeit(func, loops, verbose) return partial_inner But without knowing more about what you're accomplishing, I can't really say. If you just want a quick fix to shut the linter up (note that this is NOT a Python error, it's just a message from a linter), you could use a different name for one of the variables. ChrisA -- https://mail.python.org/mailman/listinfo/python-list