What is __init__.py for?

It used to be a required part of a package (old, pre-3.3 “regular package”, not newer 3.3+ “namespace package”). Here’s the documentation. Python defines two types of packages, regular packages and namespace packages. Regular packages are traditional packages as they existed in Python 3.2 and earlier. A regular package is typically implemented as a directory … Read more

How can I add new keys to a dictionary?

You create a new key/value pair on a dictionary by assigning a value to that key d = {‘key’: ‘value’} print(d) # {‘key’: ‘value’} d[‘mynewkey’] = ‘mynewvalue’ print(d) # {‘key’: ‘value’, ‘mynewkey’: ‘mynewvalue’} If the key doesn’t exist, it’s added and points to that value. If it exists, the current value it points to is … Read more

Convert bytes to a string

Decode the bytes object to produce a string: >>> b”abcde”.decode(“utf-8”) ‘abcde’ The above example assumes that the bytes object is in UTF-8, because it is a common encoding. However, you should use the encoding your data is actually in!

What is the difference between __str__ and __repr__?

Alex summarized well but, surprisingly, was too succinct. First, let me reiterate the main points in Alex’s post: The default implementation is useless (it’s hard to think of one which wouldn’t be, but yeah) __repr__ goal is to be unambiguous __str__ goal is to be readable Container’s __str__ uses contained objects’ __repr__ Default implementation is … Read more