name 'aLOCK' is not defined When I add aLOCK = threading.RLock() behind if __name__ == "__main__"

Steven D'Aprano steve+comp.lang.python at pearwood.info
Fri Aug 10 02:51:44 EDT 2018


On Fri, 10 Aug 2018 08:15:09 +0200, Karsten Hilbert wrote:

> On Fri, Aug 10, 2018 at 12:24:25AM +0800, xuanwu348 wrote:
> 
>> Yes, move the code from positionA(can run normally) to
>> positionB(exception with name undefined) I find this content
>> "https://docs.python.org/3.3/tutorial/classes.html#python-scopes-and-
namespaces"
>> But I still don't undewrstand the differenct of  scopes-and-namespaces
>> between positionA and positionB,
>>
>> I think the variable "aLock" at these positionA or  positionB are all
>> global.
> 
> When something goes wrong in an unexpected way: test your assumptions
> ;-)



xuanwu348's assumptions are correct. aLock is a global, in both 
positions. The problem is not the scope of the variable, but whether or 
not the variable is assigned to or not.




-- 
Steven D'Aprano
"Ever since I learned about confirmation bias, I've been seeing
it everywhere." -- Jon Ronson




More information about the Python-list mailing list