Scapy is another library where they redefined / to layer packets, such that you can write:
IP(dst="172.23.34.45") / UDP() / DNS(…)
Then Scapy has magic so that on serialisation, the UDP layer knows defaults to dport=53 if the upper layer is DNS, and it can access the lower layer to compute its checksum.
And don't forget that strings have a custom % (as in modulo) operator for formatting:
"Hello %s" %(username)
Of course in modern Python, f-strings will almost always be more convenient
They could have chosen a better operator. But the functionality is fantastic. Makes working with paths so much easier. And you can even use slashes on windows paths.
Today I realised, we all prefer semantics matching oriental language semantics.
English: Open my path.
Same sentence in Hindi semantics would be: My path open.
9 Comments
pnutzh4x0r@lemmy.ndlug.org · 7 pts · 1y
This is both cool and gross... gives me C++ vibes (operator overloading abuse).
Fred@programming.dev · 4 pts · 1y
Scapy is another library where they redefined
/to layer packets, such that you can write:Then Scapy has magic so that on serialisation, the UDP layer knows defaults to dport=53 if the upper layer is DNS, and it can access the lower layer to compute its checksum.
And don't forget that strings have a custom
%(as in modulo) operator for formatting:Of course in modern Python, f-strings will almost always be more convenient
Diplomjodler3@lemmy.world · 2 pts · 1y
They could have chosen a better operator. But the functionality is fantastic. Makes working with paths so much easier. And you can even use slashes on windows paths.
leds@feddit.dk · 8 pts · 1y
It makes the code so much more clean and readable since you're dropping multiple levels of brackets , for example
os.path.join( a, b, os.path.dirname(c))Becomes
a / b / c.parentI really like it
Diplomjodler3@lemmy.world · 2 pts · 1y
I always hated os.path. pathlib is just so much better.
eager_eagle@lemmy.world · 1 pts · 1y
Nice, mypath.open() is a more semantic alternative to open(my path)
joyjoy@lemm.ee · 1 pts · 1y
Don't forget about the helper functions
mypath.read_text()andmypath.write_text(content)eager_eagle@lemmy.world · 1 pts · 1y
that's already in the cheatsheet
ulterno@programming.dev · -1 pts · 1y
Today I realised, we all prefer semantics matching oriental language semantics.
English: Open my path.
Same sentence in Hindi semantics would be: My path open.