this post was submitted on 17 Apr 2025
174 points (92.6% liked)
memes
14331 readers
2869 users here now
Community rules
1. Be civil
No trolling, bigotry or other insulting / annoying behaviour
2. No politics
This is non-politics community. For political memes please go to !politicalmemes@lemmy.world
3. No recent reposts
Check for reposts when posting a meme, you can only repost after 1 month
4. No bots
No bots without the express approval of the mods or the admins
5. No Spam/Ads
No advertisements or spam. This is an instance rule and the only way to live.
A collection of some classic Lemmy memes for your enjoyment
Sister communities
- !tenforward@lemmy.world : Star Trek memes, chat and shitposts
- !lemmyshitpost@lemmy.world : Lemmy Shitposts, anything and everything goes.
- !linuxmemes@lemmy.world : Linux themed memes
- !comicstrips@lemmy.world : for those who love comic stories.
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I think it's because
not()
is equivalent tonot(None)
, and sinceNone
is falsynot(None)
returnsTrue
.Are you sure?
I can't test it now, but to me it looks like
()
is an empty tuple. Python behavior is that for logic operations empty set equals to false. Then we applynot
to getTrue
. Not having space betweennot
operator and parentheses makes it look like it is a function.I'm pretty sure you're right; that makes more sense.
Why is literally nothing equivalent to None? Is it because None is the default value of an optional parameter? (If so why oh why is it optional)
Because nothing isn't something, and something is true. It's base Boolean logic where everything is either true or false. Null/nothing is false.
It's a weird way to think about conditionals, but it makes sense when you use them in real examples. In my case, I use them like this when I need to make sure that a variable has a value. So I can do something like
If(variable){do things with the variable}else{do stuff when the variable doesn't exist}
I understand that, it makes sense. But why does it not throw an error? The parameter is missing after all.
Actually the explanation is wrong.
is actually
not
is a keyword not a function.Boolean of empty tuple is
False
and thennot
negates it.I explained it better here:
https://lemm.ee/post/61594443/19783421
That makes a lot more sense, thanks I did see in the syntax highlighting that it was a keyword but forgot that none of them took parameters.
No it's not, "" (a null/empty string) is the parameter. Not every function needs a parameter to be valid, and negation is one of them. Negating nothing is something, so "not()" = "not(null)" = "not(false)" = "true"
God I love python
in J, many other languages, not null is null.
if not a were null then an if that evaluates that would evaluate it as falsy… also if a would evaluate as falsy :/ that’s far weirder behaviour