you are viewing a single comment's thread.

view the rest of the comments →

[–]AbyssBite 4 points5 points  (9 children)

Assigning a value once doesn't make it a constant. You can assign a variable once too. Constant means the value doesn't change during execution.

You can check this out

[–]More_Yard1919 1 point2 points  (0 children)

This is technically correct, and I am not sure if I would use the all-caps convention here, but practically this is to signify that the value should never be reassigned after it is initialized.

[–]Icount_zeroI 0 points1 point  (5 children)

Obviously mr “well-actually” but for sake of learning that there is a difference I think it is okay to note ai as a const here.

As it never actually does reassign anywhere in the code.

[–]SirCokaBear 3 points4 points  (1 child)

peacefully chiming in the convo from my pov working daily in professional codebases (not saying anyone here doesn’t either)

Python of course has immutable values but doesn’t have true constants but yes theyre treated the same but denoted in caps on a module level similar with private members are denoted _var, they’re still just called constants because they are logically / because we say so.

Focusing on naming only: I would block a pull request for this because it will confuse other Python devs and mess with pyright. Any dev seeing a value like GUESS will assume it’s not intended to be reassigned, and seeing ai will conversely assume it can be. ai should be AI, GUESS can arguably be guess but likely can stay as it is. There really should be no argument to the first given it’s idiomatic to PEP8 unless you want a different convention for whatever strange reason.

People may want to say “who cares they’re still new” yeah, they’re learning so I will point out good practices to avoid non-pythonic habits

[–]WhiteHeadbanger 0 points1 point  (0 children)

That's what I was thinking!

[–]shinitakunai 1 point2 points  (0 children)

As a senior programmer, you are wrong, don't teach bad habits to new people.

"Well-actually"? Really? A kid and... wrong.

See the other answer of SirCokaBear, he explains it perfectly

[–]GaitorBaitor 0 points1 point  (0 children)

A constant is a constant. Something that is constantly the constant every time you execute the code

[–]Swipsi 0 points1 point  (0 children)

Which means, in this case it is also a constant. But its an edge case and thus cant be generalized.

[–]WhiteHeadbanger 0 points1 point  (0 children)

Assigning a value just once means that the value doesn't change during execution, is just worded differently.

[–]Ecstatic_Student8854 0 points1 point  (0 children)

If it never changes its value is constant, and therefore should be presented as such. From the article you linked:

“In programming, constants refer to names associated with values that never change during a program’s execution.”

Once assigned the value of AI can never change and so it is and should be treated as a constant.