python 导入包 作用域_Python 包、模块、函数、变量作用域

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

returnresult

result=get_result(1,2)#这1 , 2 分别给 x , y 就是必须参数

print(result)

2.关键字参数:这在于函数的调用,而不是函数的定义。

defget_result(x,y):

result=x+y

returnresult

result=get_result(1,2) #需考虑赋值顺序

print(result)

result2=get_result(y=2,x=1)  # 这就是关键字参数,在于函数调用时候,不用考虑赋值顺序。

print(result2)

以上两个参数类型,只是在函数调用时候的不同,而参数定义是一样的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/430077.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

getDate()返回日期不一致问题引发的bug

问题描述 最近在webapp的开发中遇到一个Date对象中getDate获取日期的兼容性问题,Date对象的getDate方法返回的日期和传入的日期不一致,例如: 在android 4.3以下版本,getDate返回的日期会有一天的偏差 var d new Date(1987/04/12)…

JVM垃圾回收机制学习

一、可回收对象判定方法 识别方式有两种。一是,引用计数算法;二是,可达性分析。 第一种方法:引用计数算法。当一个对象被引用时,引用计数器加1,当引用失效时,引用计数器减1。当一个对象的引用…

draw python_科学网—Draw figures with Python - 高琳琳的博文

2D histgramimport matplotlib.pyplot as pltfrom matplotlib.font_manager import FontProperties# %matplotlib inline #Jupyter notebook在线显示plt.bar([NC], [0.6], width0.6, facecolor#FA8072, label真实值)plt.bar([MCI, AD], [0.25, 0.15], width0.6, facecolor…

C#链接mysql 新手容易出错的问题

1.Access denied for user rootDESKTOP-AN72KEI (using password: YES) 出现这个问题的原因是因为mysql的自带用户root理论上是不允许对外访问的,只能本地访问,如果需要访问该用户,需要修改一些mysql的配置文件,最好是使用自己新建…

JVM堆溢出实例

堆溢出条件 要观察堆溢出,要同时满足两个条件: 堆大小固定,不可扩展不断创建对象,并保持对象不被回收 因为对象是在堆里面创建的,堆大小一定,一直创建对象就可以消耗完堆空间,同时&#xff0…

python 不确定度_python机器学习-chapter2_16

•分类器的不确定度决策函数(decision_function):二分类:返回类型为(n_samples, ),为每个样本返回一个浮点数,这个浮点数的正负号代表了预测的分类,值的大小代表了置信度。多分类:返回类型为(n_samples, n_…

Java NIO学习

概述 NIO是一种基于缓存的、非阻塞的异步IO。NIO主要涉及到三个概念:Buffer(缓存),Channel(通道),Selector(选择器)。NIO和传统IO不同在于:NIO是基于缓存的&…

python的convert_python编程开发之类型转换convert实例分析

本文实例讲述了python编程开发之类型转换convert。分享给大家供大家参考,具体如下:在python的开发过程中,难免会遇到类型转换,这里给出常见的类型转换demo:int(x [,base ]) 将x转换为一个整数long(x [,base ])…

CSS3 pointer-events的应用

CSS3定义的pointer-events属性可以改变点击元素默认触发的事件 禁用a标签触发点击事件 使用pointer-events:none可以达到禁止点击的效果。我们都知道input标签有disable属性,但是其它标签没有,而很多时候,我们都是用a标签来做按…

TCP笔记

TCP笔记 概念 MTU:maximum transmission unit最大传输单元 每种网络都不一样,以太网是1500。最小46字节。当数据块大于MTU时,将在发送端IP层进行分片,接收端IP层进行重组。IP分组在网络中传输中出现丢包时,由于IP层没有…

微信语音怎么转发给别人听_微信分付怎么邀请别人 微信分付如何才能被邀请开通...

阅读本文前,请您先点击上面蓝色字体,再点关 注这样您就可以继续免费收到文章了,每天都有分享,完全是“免费订阅”,请放心关注注:本文转载自网络,如有侵权,请在后台留言联系我们进行删…

Javascript事件委托

Javascript事件通过冒泡传递,事件最初发生在某个元素,然后传递给该元素的父元素,父元素再传给父元素,如此一级一级往上传递。如果事件发生的元素不处理事件,而是让事件传递到祖先元素,让祖先元素处理&#…

Cmd Markdown 简明语法手册

转自地址: https://www.zybuluo.com/mdeditor?urlhttps://www.zybuluo.com/static/editor/md-help.markdown『Cmd 技术渲染的沙箱页面,点击此处编写自己的文档』Cmd Markdown 简明语法手册 Cmd-Markdown 1. 斜体和粗体 使用 * 和 ** 表示斜体和粗体。 示…

python函数拟合编程_Python应用实现双指数函数及拟合代码实例

双指数函数待拟合曲线为 y(x) bepx ceqximport matplotlib.pyplot as pltx ([0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5,0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1.0])y ([0.33, 0.26, 0.18, 0.16, 0.12, 0.09, 0.08, 0.07, 0.06, 0.06,0.06, 0.…

ThreeJS 开发实例

形状和材质 虚线 画虚线: function DrawDashLine(){var geometry new THREE.Geometry();/*** vertexColors: false 关闭使用点颜色来生成线的颜色,这个值默认是false,如果设置为true,那么后面设置的color将不起作用* dashSize…

【poj3070】Fibonacci

矩乘快速幂入门 题目已经把题解讲得很清楚了 1 #include<cstdio>2 #include<cstring>3 #include<cassert>4 #include<algorithm>5 using namespace std;6 #define p 100007 #define N 108 #define ll long long9 struct matrix{ 10 int n,m; 11 …

调用线程必须为sta_Java手写分布式系统远程调用RPC框架

一、RPC简介最近看hadoop底层通信&#xff0c;都是通过RPC实现的。RPC(Remote Procedure Call Protocol)远程调用&#xff1a; 远程过程调用是一种常用的分布式网络通信协议,它允许运行于 一台计算机的程序调用另一台计算机的子程序&#xff0c;同时将网络的通信细节隐藏起来&a…

ThreeJS阴影

在threejs中&#xff0c;阴影可以定义为“在渲染器支持的情况下&#xff0c;有一个可以产生阴影的光&#xff0c;照射在若干个可以产生阴影的物体上&#xff0c;并在某个可以接受阴影的物体上产生阴影”。所以&#xff0c;要产生阴影&#xff0c;渲染器、光、物体&#xff0c;接…

python2发送http不编码_[转]Python 2.x中常见字符编码和解码方面的错误及其解决办法...

Python 2.x中的字符编码&#xff0c;设计的的确不好&#xff0c;导致初学者&#xff0c;甚至是即使用Python很长时间的人&#xff0c;都会经常遇到字符编解码方面的错误。下面就把一些常见情&#xff0c;尽量的都整理出来&#xff0c;并给出相应的解决办法。看此文之前Python中…

shell总结(0基础入门)

一、简介 shell是用户和操作系统交互的命令行解释器。 shell有很多种&#xff1a; bash、csh、sh、ksh、、、 我们等了linux时看到的命令行就是一个bash。 二、第一个脚本&#xff1a; [rootlinux1 script]# vim first.sh #!/bin/bash#auther:xiaofan#time:2016.10.4#井号是注…