美文网首页
6.模块、函数与变量作用域

6.模块、函数与变量作用域

作者: tomtiddler | 来源:发表于2018-10-01 09:23 被阅读0次

循环与使用场景 while

解决问题的基本思维模式
多用于递归,其他场景,推荐使用for循环。

while condition:
    code1
    def func(condition):
        code2
        return condition
    func(condition)
else:  # 类比if else
    print("EOF")

for 与 for else 循环

使用场景
主要用来遍历/循环 序列、集合、字典

a = [[1, 2, 3], [2, 3, 4]]
for x in a:
    for y in x:
        if x == 4:
            break
        print(y, end="")
else:
    print("end")  # 当for`正常`退出,将执行else

以上代码,内部for 的 break 不影响 外部的 for 循环退出
break continue关键字

for 与 range

for i in range(0, 10, 2):
循环重复十次。
for i in range(10, 0, -2): 递减数列
切片:a = [1, 2, 3, 4, 5]
a[4::-1] a[-1:-5:-1]
已经具备用python解决基本问题的能力

新篇章

写出功能代码并不难,难在写出高性能,封装性良好,可复用性高。
逻辑思维能力 -> 抽象能力
代码美与不美

python功能的组织结构:包、模块、类

包:简单理解为文件夹
模块:简单理解成单文件
类:
模块下不仅可以写类、也可以写函数和变量。业务逻辑

类下属函数、变量: 属于类本身的特性,不属于python组织结构

python包与模块的名字

不同包下不同名字的模块,通过模块的命名空间,即包的名字区分。
python包下可以包含子包、模块。
python包文件夹下需要包含init.py文件,init模块名就是包名

模块的导入

python是解释型语言,import需要遵循解析顺序。符合思维逻辑。
py经过编译过后生成pycache文件夹 内含pyc文件,能提升python运行效率.

from import 导入变量

通过from module import constance 的形式可以导入变量或者常量,import后只能跟常量名,不能加模块名,否则无法导入。constance用 * 代替表示导入所有变量或者函数-> 不推荐常用 -> 书写函数all =["str", "str2"], 模块文件开头定义,代表 * 能引入的所有变量。模块内置属性

__init__.py的用法

查找:pycharm显示和隐藏文件夹
from module import constance
导入变量可采用逗号分隔, 导入模块逗号分隔好像不符合规范。
换行:加上\反斜杠 -- 不推荐使用 ->推荐加上括号

当一个包被导入的时候,__init__.py文件会被首先自动被执行,导入包下的模块或者变量、都会执行. -> 可以导入一些公共包,或者公共参数?
但是如果只是导入包 (import pack),除非在init中导入,否则无法使用包下的模块。可以加上__all__属性,from pack import * 将导入all定义的所有模块,不定义导入所有模块。

__init__作用:批量导入模块

# t 下的__init__
import sys
import ..
# 其他文件
import t
print(t.sys.path)

包与模块的几个常见错误

包和模块不会被重复导入! python机制。->入口文件的概念。
-> 即使导入的多个文件看似都导入了某个模块,但是模块实际上只初始化了一次!!!可以编写小型代码进行测试。

要避免循环导入 a 导入 b, b导入a,或者多个模块的循环引用。
一旦导入一个模块,就会执行这个模块的所有代码。

相关文章

  • 6.模块、函数与变量作用域

    循环与使用场景 while 解决问题的基本思维模式多用于递归,其他场景,推荐使用for循环。 for 与 for ...

  • JavaScript作用域学习笔记

    作用域是变量与函数的可访问范围,作用域控制着变量与函数的可见性和生命周期。变量的作用域有两种:全局作用域和局部作用...

  • 作用域和作用域链

    作用域和作用域链 作用域 作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期。在Java...

  • 作用域与变量提升

    作用域与变量提升 作用域 JS中变量的作用域有全局作用域和局部作用域两种,作用域简单来讲就是变量与函数的可访问范围...

  • 作用域

    何为作用域 任何编程语言都有作用域的概念,简单来说,作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可...

  • JavaScript中的作用域和作用域链(一)

    作用域 1.作用域的概念: 变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期。 2.全局作用域与...

  • 作用域链

    一、作用域 定义:作用域就是变量与函数的可访问范围。作用域控制着变量与函数的可见性和生命周期。 1、全局作用域(G...

  • JavaScript 作用域和作用域链

    JavaScript 作用域 作用域就是变量与函数的可访问范围。在JavaScript中,变量的作用域有全局作用域...

  • 【Python】-012-函数-基本语法

    声明函数 变量作用域 Python变量作用域的四种情况: B:build-in 系统固定模块里面的变量,也叫系统变...

  • 我的JS笔记 -- 作用域

    作用域和作用域链概念 作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期。在JavaSc...

网友评论

      本文标题:6.模块、函数与变量作用域

      本文链接:https://www.haomeiwen.com/subject/rxkbnftx.html