Today I want to talk about generators in #Python!

๐Ÿงต๐Ÿ๐Ÿ‘‡
Python functions will always return one value

Python generators can return one OR more values!

A generator works by "saving" where it last left off (or yielding) and giving the calling function a value.

A generator function requires Python's yield statement
To create a generator in #Python, you must use the `yield` keyword.

Here's an example that can generate an infinite number of return values:
You can also make a generator that only generates a finite number of items.

For this example, you use the `yield` keyword 3 times:
You can also loop over a generator object. This allows you to work on the items that the generator yields to you one at a time without the need to call `next()`
Python has generators built into the language. For example, if you open a file, you can iterate over that file object line-by-line.

Under the covers, Python is yielding those lines one at a time. In other words, it's using a generator!
You can read more about generators in my tutorial @mousevspython

blog.pythonlibrary.org/2016/05/03/pytโ€ฆ
I hope you enjoyed this thread on Python generators.

Follow me for more great #Python content! ๐Ÿ๐Ÿ”ฅ

โ€ข โ€ข โ€ข

Missing some Tweet in this thread? You can try to force a refresh
ใ€€

Keep Current with Mike Driscoll

Mike Driscoll Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @driscollis

14 Dec
Iterators in #Python are usually defined as needing the following two methods:

๐Ÿ __iter__ - provides iteration support
๐Ÿ __next__ - returns the next item in the container

๐Ÿงต๐Ÿ๐Ÿ‘‡
A #Python list isn't considered an iterator. It is an iterable, something that you iterate over. But because lists don't define `__next__`, they aren't technically an iterator.

However, you can turn a list into an iterator using the built-in `iter()` function: Image
You can create your own iterators in #Python by adding the appropriate magic methods to your class.

Here is an example: Image
Read 5 tweets
4 Dec
A lot of people use #Python for automation. Let's talk about some of the packages you can use this task!

๐Ÿงต๐Ÿ๐Ÿ‘‡
PyAutoGUI is useful if you need to control the mouse and keyboard on your PC with Python

You can use PyAutoGUI to fill out forms, take screenshots and much more

pyautogui.readthedocs.io/en/latest/
Pywinauto is also for controlling the mouse and keyboard, but is specifically targeted at Windows

pywinauto.readthedocs.io/en/latest/
Read 8 tweets
3 Dec
I wrote a book about creating GUIs with #Python a couple of years ago.

In it, I created a SQLite database viewer application with #wxPython in under 100 lines of code

๐Ÿงต๐Ÿ๐Ÿ‘‡
Here is the SQLite database viewer I created with #Python and #wxPython for the book

Note: This code should work fine on Windows, Mac and Linux
You can get the code for my SQLite database viewer on GitHub here:

github.com/driscollis/appโ€ฆ
Read 5 tweets
3 Dec
Let's talk about type hinting in #Python

๐Ÿงต๐Ÿ๐Ÿ‘‡
Type hinting is not enforced by Python. You can enforce it with outside packages, such as Mypy or with your Python IDE
Type hinting is most useful when you have a large team you are working with or with a large codebase.

Type hinting is also useful for introspection when creating Python packages
Read 6 tweets
19 Nov
Today we are going to talk about the basics of unit testing in #Python

๐Ÿงต๐Ÿ๐Ÿ‘‡
The Python programming language includes built-in packages for testing:

๐Ÿ doctest
๐Ÿ unittest
I already did a thread on Python's `doctest`:

Read 13 tweets
18 Nov
Python comes with its own built-in debugger called `pdb`.

Let's talk about that in a mini-thread!

๐Ÿงต๐Ÿ๐Ÿ‘‡
`pdb` stands for Python debugger. It is a built-in part of Python's standard library

Here is a link to the documentation:

docs.python.org/3/library/pdb.โ€ฆ
To start debugging code with `pdb`, you need to write some code.

Here's the code you'll be using:
Read 17 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(