本文共 4584 字,大约阅读时间需要 15 分钟。
The code snippet provided has a list list1 where an anonymous function is dynamically added for each iteration. The function definition is stored in the list rather than being immediately called. After the loop completes, the functions are called with x=2 to produce specific outputs. The challenge is to determine the expected result based on the closure behavior in Python.
The list1 is populated with anonymous functions that capture the i variable from their enclosing scope. Even though the functions are defined inside a loop, their references to i are late-bound. This means that after the loop completes and i is finally set to 4, all functions in the list will refer to this same value of i when they are called. Thus, the output of each function call will be 4 * 2 = 8.
i = 0 to i = 4.i.list1 but are not immediately called.print(list1[0](2)) is called, i has been set to 4, so the returned function calls 4 * 2 = 8.print(list1[2](2)) and print(list1[4](2)) also yield 8 because all closures reference the final value of i at the time the loop completes..py file represents a module. The file name is its module name.__init__.py file. This special file signals Python that the folder is a package.There are several ways to import modules:
Basic Import:
import module_name
module_name.attribute.Implicit Import:
from module_name import variable1, variable2
Alias Import:
import module_name as new_module_name
Star Import:
from module_name import *
import statement examines the module and executes its code if required, depending on whether the module has been imported before.if __name__ == '__main__': guard clause prevents the module's main code from executing when the module is imported.To import a package or a module within a package:
Importing a Package:
import package_name
package_name.module_name.Importing a Specific Module:
from package_name.module_name import *
__init__.py File PurposeThe __init__.py file runs automatically when Python imports the package. It initializes the package and can define constants, default values, or functions related to the package.
turtle: For creating graphics in Python.
import turtleturtle.polygon(3) # Draw a triangle
smtplib: For sending email.
import smtplibsmtp = smtplib.SMTP('smtp.example.com')smtp.sendmail(from_addr, to_addr, message)os ModuleReverse Example:
import os# List current working directoryos.getcwd() # List directory contentsos.listdir('path_to_folder') time and datetime Modulestime(): Returns the current timestamp in seconds.import timet1 = time.time()print(t1) # ~4-byte timestamp
datetime: Combines date and time into a single object.from datetime import datetime, timedeltanow = datetime.now()print(now) # 'YYYY-MM-DD HH:MM:SS'
future = now + timedelta(days=10)print('10 days later:', future)random ModuleGenerate random numbers:
import random# Random between 10 and 20print(random.randint(10, 20))# Random float between 0 and 1print(random.random())
Shuffle a list:
nums = [23, 34, 'abc', True]random.shuffle(nums)print(nums)
هاش ازlied from a sequence:
import randomresult = random.choice('abc3lo901')print(result)nums = [23, 34, 'abc', 20, 3, 4]result = random.choices(nums, k=2)print(result)hashlib Moduleimport hashlibhash_obj = hashlib.md5()hash_obj.update(b'123456')print(hash_obj.hexdigest())
This was an overview of various Python concepts, including functions, modules, packages, and commonly used system libraries. The content covers essential tools every Python programmer should be familiar with when developing applications.
转载地址:http://frrjz.baihongyu.com/