匿名函数这章节是否可以新增两个demo,以便更好理解

Offen
#79 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
45/100
Issue-Typ
Dokumentation
Klarheit
Klar beschrieben
Aktivitätsstatus
Veraltet
Tech-Stack
python
Bereich
documentation

Rechercherichtung

Open the linked Python lambda chapter and locate the existing free-variable example. Compare it with the two examples and expected outputs in the issue, then add demos that clarify runtime binding; done means the chapter includes both examples and their outputs clearly.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

https://www.readwithu.com/Article/PythonBasis/python6/5.html

这主要在于 lambda 表达式中的 num2 是一个自由变量,在运行时绑定值,而不是定义时就绑定,这跟函数的默认值参数定义是不同的。所以建议还是遇到这种情况还是使用第一种解法。

这里的表达一开始不是很理解。自己尝试了下面的例子,加深理解。

书中例子为如下:

# -*- coding: UTF-8 -*-

num2 = 100
sum1 = lambda num1 : num1 + num2 ;

num2 = 10000
sum2 = lambda num1 : num1 + num2 ;

print( sum1( 1 ) )
print( sum2( 1 ) )

输出为:

10001
10001

其实可以理解为在调用sum1()和sum2()的时候,num2在第二次赋值的时候已经变成了 10000,所以输出为10001。就是理解为在运行时绑定值,而不是定义是绑定。应该是看在函数调用的时候,num2的值为什么。

配合以下的demo就比较清晰的理解了。

# -*- coding: UTF-8 -*-

num2 = 100
sum1 = lambda num1 : num1 + num2 ;

print( sum1( 1 ) )

num2 = 10000
sum2 = lambda num1 : num1 + num2 ;

print( sum1( 1 ) )

输出为:

101
10001

这里调用sum1()的时候num2 还未被赋值,能更好理解。新手,如果有理解偏差,多多包涵。

Vorherrschende Sprache
Python
Sterne
28.1k
Forks
5.6k
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Entwicklungsumgebung

Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus walter201230/Python

Alle Issues in walter201230/Python

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.