Home Backend Development Python Tutorial What does python yield mean?

What does python yield mean?

Jun 27, 2019 am 10:10 AM
python

I came across the yield keyword when reading other people's python source code. I finally figured it out through various searches. Here is a summary:

What does python yield mean?

In the usual for...in...loop, in is followed by an array. This array is an iterable object, similar to linked lists, strings, and files. It can be mylist= [1, 2, 3], or mylist = [x*x for x in range(3)]. Its disadvantage is that all data is in memory, and if there is a large amount of data, it will consume a lot of memory. (Recommended learning: Python video tutorial)

The generator can be iterated, but it can only be read once. Because it is generated when it is used. For example, mygenerator = (x*x for x in range(3)), note that () is used here, it is not an array, and the above example is [].

The key to my understanding of the generator's ability to iterate is that it has a next() method. The working principle is to call the next() method repeatedly until an exception is caught. You can use the mygenerator above to test.

The function with yield is no longer an ordinary function, but a generator generator that can be used for iteration. The working principle is the same as above.

yield is a keyword similar to return. When yield is encountered during an iteration, the value after yield is returned. The point is: in the next iteration, execution starts from the code after the yield encountered in the previous iteration.

Brief understanding: yield means return returns a value, and remembers the returned position, and the next iteration will start from this position.

Functions with yield are not only used in for loops, but can also be used as parameters of a function, as long as the parameters of this function allow iteration parameters. For example, the array.extend function, its prototype is array.extend(iterable).

The difference between send(msg) and next() is that send can pass parameters to the yield expression. The parameters passed at this time will be used as the value of the yield expression, and the parameters of yield are the values ​​returned to the caller. . ——In other words, send can forcibly modify the previous yield expression value. For example, there is a yield assignment in the function, a

= yield 5. The first iteration here will return 5, and a has not been assigned a value. In the second iteration, use .send(10), then the value of the expression a is forcibly modified to 10, which was originally None, then a=10

send(msg) and next() both There are return values. Their return value is the value of the expression after yield when the current iteration encounters yield. In fact, it is the parameter after yield in the current iteration.

The first call must be next() or send(None), otherwise an error will be reported. The reason why it is None after send is because there is no previous yield at this time (according to Article 8). It can be considered that next() is equivalent to send(None).

For more Python related technical articles, please visit the Python Tutorial column to learn!

The above is the detailed content of What does python yield mean?. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat Commands and How to Use Them
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Python: Games, GUIs, and More Python: Games, GUIs, and More Apr 13, 2025 am 12:14 AM

Python excels in gaming and GUI development. 1) Game development uses Pygame, providing drawing, audio and other functions, which are suitable for creating 2D games. 2) GUI development can choose Tkinter or PyQt. Tkinter is simple and easy to use, PyQt has rich functions and is suitable for professional development.

PHP and Python: Comparing Two Popular Programming Languages PHP and Python: Comparing Two Popular Programming Languages Apr 14, 2025 am 12:13 AM

PHP and Python each have their own advantages, and choose according to project requirements. 1.PHP is suitable for web development, especially for rapid development and maintenance of websites. 2. Python is suitable for data science, machine learning and artificial intelligence, with concise syntax and suitable for beginners.

How debian readdir integrates with other tools How debian readdir integrates with other tools Apr 13, 2025 am 09:42 AM

The readdir function in the Debian system is a system call used to read directory contents and is often used in C programming. This article will explain how to integrate readdir with other tools to enhance its functionality. Method 1: Combining C language program and pipeline First, write a C program to call the readdir function and output the result: #include#include#include#includeintmain(intargc,char*argv[]){DIR*dir;structdirent*entry;if(argc!=2){

Python and Time: Making the Most of Your Study Time Python and Time: Making the Most of Your Study Time Apr 14, 2025 am 12:02 AM

To maximize the efficiency of learning Python in a limited time, you can use Python's datetime, time, and schedule modules. 1. The datetime module is used to record and plan learning time. 2. The time module helps to set study and rest time. 3. The schedule module automatically arranges weekly learning tasks.

Nginx SSL Certificate Update Debian Tutorial Nginx SSL Certificate Update Debian Tutorial Apr 13, 2025 am 07:21 AM

This article will guide you on how to update your NginxSSL certificate on your Debian system. Step 1: Install Certbot First, make sure your system has certbot and python3-certbot-nginx packages installed. If not installed, please execute the following command: sudoapt-getupdatesudoapt-getinstallcertbotpython3-certbot-nginx Step 2: Obtain and configure the certificate Use the certbot command to obtain the Let'sEncrypt certificate and configure Nginx: sudocertbot--nginx Follow the prompts to select

GitLab's plug-in development guide on Debian GitLab's plug-in development guide on Debian Apr 13, 2025 am 08:24 AM

Developing a GitLab plugin on Debian requires some specific steps and knowledge. Here is a basic guide to help you get started with this process. Installing GitLab First, you need to install GitLab on your Debian system. You can refer to the official installation manual of GitLab. Get API access token Before performing API integration, you need to get GitLab's API access token first. Open the GitLab dashboard, find the "AccessTokens" option in the user settings, and generate a new access token. Will be generated

How to configure HTTPS server in Debian OpenSSL How to configure HTTPS server in Debian OpenSSL Apr 13, 2025 am 11:03 AM

Configuring an HTTPS server on a Debian system involves several steps, including installing the necessary software, generating an SSL certificate, and configuring a web server (such as Apache or Nginx) to use an SSL certificate. Here is a basic guide, assuming you are using an ApacheWeb server. 1. Install the necessary software First, make sure your system is up to date and install Apache and OpenSSL: sudoaptupdatesudoaptupgradesudoaptinsta

What service is apache What service is apache Apr 13, 2025 pm 12:06 PM

Apache is the hero behind the Internet. It is not only a web server, but also a powerful platform that supports huge traffic and provides dynamic content. It provides extremely high flexibility through a modular design, allowing for the expansion of various functions as needed. However, modularity also presents configuration and performance challenges that require careful management. Apache is suitable for server scenarios that require highly customizable and meet complex needs.

See all articles