Does your company have an individual training budget that expires at the end of year? 💸
If you use #Python at work, sign up for the @PythonMorsels All Access plan and submit your training reimbursement before year end. 🐍💼
https://t.co/0YrJDd1jZ3
Managing a #Python team and want to chat about your team's skill trajectory?
I have ideas & opinions! I'd love to chat about:
1. On-boarding new hires 📋
2. Fostering kind code style discussions 🐕
3. Learning from each other regularly 👩🏫
4. Team learning in general 🤔
DM me 💬
New blog post: What's great about #Python 3.10?
There's some fun new features, but improved error messages are *the* winning Python 3.10 feature.
https://t.co/6npvBe5sOU
When we use keyword/named arguments, it's the name that matters, not the position
Read the full article: Keyword (Named) Arguments in Python: How to Use Them
▸ https://t.co/1SjTH1gJPc
#Python
Our class instantiation syntax in Python is the same as our function call syntax.
Instead of "new SomeClass()" we write "SomeClass()".
Because of this we use the word "function" in a fuzzy way: "function" is often used to mean "callable".
https://t.co/tawEdwYt0x
In #Python, you can pass function objects as an argument to another function.
In fact, some of the built-in functions, like sorted, specifically accept functions as an argument.
https://t.co/QWTfJtYDzi
You can break up long lines of #Python code with implicit line continuation. PEP 8 recommends relying on implicit line continuation instead of putting a \ at the end of lines to continue them.
https://t.co/2j6YvxxTs3
If you're new to list comprehensions in #Python, I recommend writing your comprehensions by copy-pasting your way from a "for" loop. This way you can anchor your understanding of comprehensions on your existing knowledge of "for" loops.
https://t.co/Otrp481tlg
Something folks often ask me in my Python trainings: are immutable objects the same as constants? 🤔
They're not! 😮 Immutable objects stop you from mutating an object but constants stop you from assigning to a variable (remember: variables are pointers in Python). 🐍🍪
A callable is an object that you can call. Functions are callables in #Python, but so are classes (many of the "built-in functions" are actually classes).
https://t.co/4pPxKnELIi
Need an attribute that updates its value automatically? Use a property!
In the #Python world, we tend to prefer properties over getter methods.
https://t.co/YAqLn5FJLt
We have immutable objects in Python but we don't have constant variables.
The UPPERCASE_CONVENTION for constants is just a naming convention in #Python. It doesn't stop variables from being re-assigned.
https://t.co/GvqjyiljH4
Checking an object's truthiness checks for non-emptiness and non-zero-ness.
FYI: the #Python docs don't mention "truthy" or "falsey" even once. The docs call it "truth value testing" but Pythonistas rarely use that phrase colloquially.
https://t.co/1QY2qqVki9
Instead of using hard-coded indices to get tuple elements, use tuple unpacking to give descriptive names to each item. Important items should have a name instead of a number. #Python
https://t.co/fbLOIdU2lG
When you import a module in #Python, you'll get access to a module object with attributes representing each of the variables in that module.
https://t.co/yQSSxtb5SS
Parentheses in #Python's class & function definitions mean different things
In a function definition, parentheses after the name denote the functions' arguments.
In a class definition, parentheses after the name denote the class' parent classes.
https://t.co/3yPqpE1QFQ
The first method you'll see in most #Python classes is the init method.
This isn't a constructor method but an initializer method (because by the time init is called, a new class instance has already been "constructed")
https://t.co/eJ2kQmk2Rt