[issue43380] Assigning function parameter to class attribute by the same name

2021-03-03 Thread Steven D'Aprano
Steven D'Aprano added the comment: Looking at the disassembly of the demo() function also shows differences between the B and C classes. I seem to recall discussion about this on, maybe, the Python-Dev list. I think resolving this will probably have to wait on a re-design of the exact

[issue43380] Assigning function parameter to class attribute by the same name

2021-03-03 Thread Steven D'Aprano
Steven D'Aprano added the comment: Here's an example that shows what is going on: def demo(): a = 1 class B: x = a print(B.x) # Okay. class C: x = a # Fails. if False: a = None print(C.x) If you run that, B.x is printed (1) but

[issue43380] Assigning function parameter to class attribute by the same name

2021-03-02 Thread jennydaman
jennydaman added the comment: Yes sorry that was a typo -- ___ Python tracker ___ ___ Python-bugs-list mailing list Unsubscribe:

[issue43380] Assigning function parameter to class attribute by the same name

2021-03-02 Thread jennydaman
jennydaman added the comment: # Example Consider these three examples, which are theoretically identical ``` a = 4 class A: a = a print(A.a) def createB(b): class B: z = b print(B.z) createB(5) def createD(d): class D: d = d print(D.d)

[issue43380] Assigning function parameter to class attribute by the same name

2021-03-02 Thread Eric V. Smith
Eric V. Smith added the comment: Was def createD(D): supposed to be: def createD(d): ? Not that that changes your problem. I just want to understand the exact issue. -- nosy: +eric.smith ___ Python tracker

[issue43380] Assigning function parameter to class attribute by the same name

2021-03-02 Thread jennydaman
New submission from jennydaman : # Example Consider these three examples, which are theoretically identical ``` a = 4 class A: a = a print(A.a) def createB(b): class B: z = b print(B.z) createB(5) def createD(D): class D: d = d print(D.d)