Python 项目的组织结构
- 包
-- 模块
--- 类
---- 函数、变量
 
Python是利用包和模块来组织一个项目的。
 
包: 包的物理表现是一个文件夹,但是一个文件夹却不一定是个包,要想让个文件夹成为一个包,就必须在这个文件夹下增加个特定的文件 __init__.py
__init__.py里面可以什么也不写,只是纯粹来标注这个文件夹是个包。 也可以在这个文件里编写代码。
对于模块的名字:包名.模块名
对于__init__.py模块的名字:直接是包名
 
 
导入有两种方式:
 
1、导入模块:import 模块名
若在模块A中想用到B模块的变量b,那么在A中import B 之后,需要使用模块名来点出来变量名:B.b
在模块A中:
import B
print(B.b)
 
2、from 模块名 import 变量名,函数
  在模块A中:
  from B import b  
 可直接使用 print(b),而不用使用前缀
 
import导入的是模块,from import导入的是具体的变量或者函数,因此使用from import 就不用使用前缀了。
但是!也可以使用 from 包名  import 模块名   然后在A模块中使用 B.b 。。。。
比如:B模块在C包中,C包和A模块是平级的
在A模块中使用:
from C import B
print(B.b)
 
若是B中有大量的变量需要导入,那么可以用  *  号来指代。
但是如此,便将B中的所有都导入A中了。
其实可以在B中进行指定,哪些变量可以通过 * 号来进行导入到其他文件
在B文件的顶部,使用 __ALL__=['变量名a',‘变量名b’] ,这样在A文件中使用 from B import * 的时候,只会将B中的 a b 两个变量导入A
 
其实吧,也可是使用 from B import a,b,c  但是呢,Python的规范是一行字符个数不超过80,若是需要导入变量过多就要换行
Python代码换行问题:
方式一:在需要换行的结尾加上反斜杠  \   然后换行
方式二:在被导入变量的外部加上括号来换行 
 
 
__inti__.py的作用:
基本作用 :import 导入包的时候,python会自动运行__init__.py文件
应用场景:做一些初始化工作
不论是导入包还是导入包中某个模块的变量,都会自动于运行init文件
 
init 文件中也可使用 __all__ = ['模块名'],来指定当此包之外的某模块使用 from 包名 import * 的时候,会import 进 __all__指定的模块

函数的参数:

 
1.必须参数:这是指代的是函数定义时候的参数顺序和个数。
 
defget_result(x,y): 
result = x + y
return result
result = get_result(,) #这1 , 2 分别给 x , y 就是必须参数
print(result)
 
2.关键字参数:这在于函数的调用,而不是函数的定义。
defget_result(x,y):
result = x + y
return result
result = get_result(,) #需考虑赋值顺序
print(result)
result2 = get_result(, )  # 这就是关键字参数,在于函数调用时候,不用考虑赋值顺序。
print(result2)
 
以上两个参数类型,只是在函数调用时候的不同,而参数定义是一样的。

Python 包、模块、函数、变量作用域的更多相关文章

  1. 函数变量作用域(python)

    收集参数:该参数个数不确定 >>> def test(*params): print('参数的长度是:', len(params)); print('第二个参数是:', params ...

  2. Python进阶(二)----函数参数,作用域

    Python进阶(二)----函数参数,作用域 一丶形参角度:*args,动态位置传参,**kwargs,动态关键字传参 *args: ​ 动态位置参数. 在函数定义时, * 将实参角度的位置参数聚合 ...

  3. Python进阶(三)----函数名,作用域,名称空间,f-string,可迭代对象,迭代器

    Python进阶(三)----函数名,作用域,名称空间,f-string,可迭代对象,迭代器 一丶关键字:global,nonlocal global 声明全局变量: ​ 1. 可以在局部作用域声明一 ...

  4. 2015/9/19 Python基础(15):变量作用域及生成器

    变量作用域标识符的作用域是定义为其声明的可应用范围,或者即是我们所说的变量可见性.也就是,我们可以在程序的那个部分去访问一个制定的标识符.全局变量与局部变量定义在函数内的变量有局部作用域,在一个模块中 ...

  5. Python基本语法_变量作用域LEGB

    目录 目录 软件系统 变量的作用域 高级语言对数据类型的使用过程 作用域的产生 作用域的类型 Llocal局部作用域 Eenclosing嵌套作用域 Gglobal全局作用域 Bbuilt-in内置作 ...

  6. Python基础:11变量作用域和闭包

    一:变量作用域 变量可以是局部域或者全局域.定义在函数内的变量有局部作用域,在一个模块中最高级别的变量有全局作用域. 全局变量的一个特征是除非被删除掉,否则它们的存活到脚本运行结束,且对于所有的函数, ...

  7. python学习day10 函数Ⅱ(参数&作用域)

    函数Ⅱ(参数&作用域) 知识小结: py2与py3的区别 逻辑运算()>not>and>or 字符串翻转切片翻转 is与==区别 git相关 数据类型判断 操作系统:cent ...

  8. Python基础3 函数 变量 递归 -DAY3

    本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数 温故知新 1. 集合 主要作用: 去重 关系测 ...

  9. JavaScript-4.2函数,变量作用域---ShinePans

    <html> <head> <meta http-equiv="content-type" content="text/html;chars ...

  10. JavaScript函数变量作用域

    变量作用域 在JavaScript中,用var申明的变量实际上是有作用域的. 如果一个变量在函数体内部申明,则该变量的作用域为整个函数体,在函数体外不可引用该变量. 如果两个不同的函数各自申明了同一变 ...

随机推荐

  1. java注册后缀样式(ajax提示)

    方法位置 <FORM id=form1 name=form1 action = "${pageContext.request.contextPath }/user_regist.act ...

  2. CSS选择器之伪类选择器(交互)

    :link 选取未访问链接 :active 选取活动链接(单击某链接,未松开鼠标时). :visited 选取已被访问的链接. :target 链接指定的目标 :hover 当鼠标浮在元素上方时. : ...

  3. android studio *.apk does not exist on disk

    Build -> Clean Project Restart Android Studio  

  4. C++ 判断当前系统x64 or x86

    BOOL IsWow64(){ BOOL bIsWow64 = FALSE; //IsWow64Process is not available on all supported versions o ...

  5. JSON学习笔记-1

    1.什么是JSON? JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于 ECMAScript (欧洲计算机协会制定的js规范)的一 ...

  6. ES6-fetch

    fetch 事实标准,并不存在与ES6规范中,基于Promise实现. 目前项目中对Promise的兼容性尚存在问题,如果在项目中应用fetch,需要引入es6-promise和fetch. fis3 ...

  7. 7.log4j2的使用

    一.简介 log4j2相对于log4j 1.x有了脱胎换骨的变化,其官网宣称的优势有多线程下10几倍于log4j 1.x和logback的高吞吐量.可配置的审计型日志.基于插件架构的各种灵活配置等.如 ...

  8. MySQL的前缀索引及Oracle的类似实现

    MySQL有一个很有意思的索引类型,叫做前缀索引,它可以给某个文本字段的前面部分单独做索引,从而降低索引的大小. 其实,Oracle也有类似的实现,对于文本,它可以通过substr的函数索引,实现同样 ...

  9. mysql性能优化-慢查询分析、优化索引和配置 (慢查询日志,explain,profile)

    mysql性能优化-慢查询分析.优化索引和配置 (慢查询日志,explain,profile) 一.优化概述 二.查询与索引优化分析 1性能瓶颈定位 Show命令 慢查询日志 explain分析查询 ...

  10. 前端 网络三剑客之html 01

    一.引语 1.html是什么? 1.超文本标记语言(Hypertext Markup Language):简称HTML或html.是通过标签语言来标记要显示的网页中的各个部分. 2.它遵循一套浏览器的 ...