【python】模块?包?库?以及作用域

【python】模块?包?库?以及作用域_第1张图片
py文件就是模块哩.png

通俗讲,
py文件就是模块
含有__init__.py文件的文件夹就是包
库指供用户使用的完成一定功能的代码集合在python中是包和模块的形式。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
' a test module ' #任何模块代码的第一个字符串都被视为模块的文档注释
__author__ = 'Milang' #别人就可以瞻仰你的大名

import sys #导入模块,就有了变量sys指向该模块,便于访问其中的所有功能
...

if __name__=='__main__':
    test()

在命令行运行该模块文件时,Python解释器把一个特殊变量__name__置为__main__,所以用命令行运行时,会运行test(),而在其他地方导入该模块时,则不会。

作用域

考考你~猜猜各题执行结果会是什么

  1. 块级作用域
if 1 == 1:
    name = "lzl"
print(name)
for i in range(10):
    age = i
print(age)
  1. 局部作用域
def  func():
    name = "lzl"
print(name)
def  func():
    name = "lzl"
func()          #执行函数
print(name)
  1. 作用域链
name = "lzl"
def f1():
    name = "Eric"
    def f2():
        name = "Snor"
        print(name)
    f2()
f1()
  1. 终极版作用域
name = "lzl"
def f1():
    print(name 
def f2():
    name = "eric"
    f1()
f2()
name = "lzl"
def f1():
    print(name)
def f2():
    name = "eric"
    return f1
ret = f2()
ret()
name = "lzl"
def f1():
    print(name)
def f2():
    name = "eric"
    f1()
f2()
  1. 新浪面试题
li = [lambda :x for x in range(10)]

第一个元素的返回值为多少?


答案在底部











详细答案点我
1: lzl 9
2.1 2.2: not defined
3: Snor
4.1 4.2 4.3: lzl
5: 9

你可能感兴趣的:(【python】模块?包?库?以及作用域)