Tools, FAQ, Tutorials:
Function Parameter Default Expression Executed Only Once
Is it true that the function parameter default expression is only executed once in Python?
✍: FYIcenter.com
Yes, the function parameter default expression is only executed once in Python when the "def" statement is interpreted.
For example, in the following Python code, when the "def profile()" statement is interpreted, the default value for "age" parameter will be set to 18+3 once and stay with that value:
>>> legalAge = 18 >>> def profile(name,age=legalAge+3): ... print("Name: "+name) ... print("Age: "+str(age)) ... >>> profile("Joe") Name: Joe Age: 21 >>> legalAge = 20 >>> profile("Jay") Name: Jay Age: 21
In the following example, the default expression assigned a new "list" object to parameter "x" once. When the function is called multiple times, the same "list" object is referenced again and again.
>>> def growingList(x=[1]): ... x.append(x[len(x)-1]*2) ... return x ... >>> growingList() [1, 2] >>> growingList() [1, 2, 4] >>> growingList() [1, 2, 4, 8] >>> growingList() [1, 2, 4, 8, 16] >>> growingList() [1, 2, 4, 8, 16, 32] >>> growingList() [1, 2, 4, 8, 16, 32, 64]
⇒ Variable Scope in Function Definition Statements
⇐ '*...' and '**...' Wildcard Parameters in Function Definitions
2022-10-26, 1241🔥, 0💬
Popular Posts:
How to add images to my EPUB books Images can be added into book content using the XHTML "img" eleme...
How To Submit Values without Using a Form in PHP? If you know the values you want to submit, you can...
Why am I getting this "Docker failed to initialize" error? After installing the latest version of Do...
Where to see resource detailed information of my API Management Service on Azure Portal? Once you ha...
How to use "xsl-transform" Azure API Policy Statement? The "xsl-transform" Policy Statement allows y...