2018.10.11python学习第十七天

模块

1.模块是什么? 模块:一组功能的集合

功能:在python中,一个功能就是一个函数;一个py文件就是一个模块

2.为什么要用模块?

借鉴思想:可以极大的提升开发效率

自定义模块:抽取我们自己程序中要用的功能,定义成模块,然后程序的各部分都去模块中调

用,可以较少代码冗余。

3.如何使用模块?

大前提:注意区分 执行文件 vs 被导入文件

模块类型的分类:

1.自定义模块(第三方模块也属于自定义模块)

2.内置模块 (c语言编写,连接到python解释器中,如time模块)

3.已经编译为DLL c or c++

4.包(包含一堆模块的文件夹)

如何自定义模块?

创建一个py文件,把功能写到该文件中

如何使用模块?

import:关键字,用于导入模块到当前文件中

如spam.py,模块名则是spam,在执行文件中写import spam就调用了该模块

当执行import时,会发生:

1.创建一个模块的namespace

2.执行被导入的文件spam.py,将模块中的name和地址的关系,都存储到模块的

namespace中。

3.在执行文件中,创建一个name,该name指向的地址就是第一步创建的namespace,执

行文件和被导入的模块namespace 是相互独立的。

import 的其他写法:

1.import xxx as xxx

# 给模块取别名,可以用别名直接调用

2.import xxx,xxx

# 一次导入多个模块

3.from xxx import xxx

# 从模块中导入名字到当前执行文件的namespace中

# 如果name冲突了,则按就近原则取值

4.from xxx import xxx,xxx

# 从模块中导入多个名字

5.from xxx import * #从模块中导入所有的name

6.from xxx import xx as xx

#取别名

#from和import出来导入的名称不同 其他性质一致

py文件的两种执行方式: 1.作为执行文件

2.作文模块被导入

如何判断py文件当前执行状态:

__name__这个名称可以获取当前执行状态如果是__main__则是当前的执行文件,否则是作为模块被导入if__name__ ==‘__main__‘:    print(‘作为执行文件‘)else:    print(‘作为模块导入‘)?

重复导入模块时,模块中的代码不会重复执行,仅在第一次导入时执行

模块的搜索顺序: 内存中已经加载的----->内置模块------->sys.path

查看内存中已经加载的模块

import sysprint(sys.modules)for i in sys.modules    print(i)

查看sys.path (环境变量)

import sysprint(sys.path)# 手动添加一个路径到环境变量中sys.path.append(r‘文件的地址’)print(sys.path)

原文地址:https://www.cnblogs.com/hello-yuanjing/p/9772985.html

时间: 2024-08-30 17:40:53

2018.10.11python学习第十七天的相关文章

2018.10.16python学习第二十天

常用模块 random 模块 ? 随机数生成模块 ? random.random() 0-1 不包括1的随机浮点数 ? random.randint(1,10) 1-10 包括1和10的整数 ? random.randrange(1,10) 1-10 包括1,但是不包括10的整数 ? random.choice(list) list 从list中随机取出一个数 ? random.choices(list,k=个数) list 从list中随机取出k个数 ? random.sample(list,

2018.10.18学习总结

1""" hash lib hash是一种算法 是将一个任意长的数据 根据计算 得到一个固定长度特征码 特征: 不同输入 可能会有相同的结果 几率特别小 相同的输入 必然得到相同结果 由于散列(特征)的性质 从原理来看是不可能 反解 用来 验证 两个输入的数据是否一致 使用场景 1.密码验证 123321 jahsajshajhsjahjas client 加密后结果 server 拿到加密后 2.验证数据是否被篡改 比如游戏安装包 有没有被改过 为了防止别人撞库成功 可用提

2018.10.19学习总结

1正则表达式import re# [] 范围匹配 中间 用-来连接# re.findall("[a-zA-Z0-9]","a ab abc abcd a123c")# 如果要匹配 符号- 要写表达式的左边或右边# print(re.findall("[-ab]","a ab abc abcd a123c a--")) # 重复匹配 表达式的匹配次数# * 表示 任意次数 所以0次也满足print(re.findall(&quo

IOS学习之十七:Grand Central Dispatch(GCD)编程基础

IOS学习之十七:Grand Central Dispatch(GCD)编程基础 有过编程经验的人,基本都会接触到多线程这块. 在java中以及Android开发中,大量的后台运行,异步消息队列,基本都是运用了多线程来实现. 同样在,在ios移动开发和Android基本是很类似的一种模型. 但是很多时候,在应用开发中,我们会发现本身并没有自己编码去处理一些并发的事件,去开辟新的子线程等等. (虽然一般的调用sdk发起一个网络请求,系统都是会默认给你新起一个线程去处理的). 整个程序看上去基本就是

JavaScript学习总结(十七)——Javascript原型链的原理

一.JavaScript原型链 ECMAScript中描述了原型链的概念,并将原型链作为实现继承的主要方法.其基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法.在JavaScript中,用 __proto__ 属性来表示一个对象的原型链.当查找一个对象的属性时,JavaScript 会向上遍历原型链,直到找到给定名称的属性为止! 比如现在有如下的代码: 扩展Object类,添加Clone和Extend方法 1 /*扩展Object类,添加Clone,JS实现克隆的方法*/ 2 Ob

C++语言学习(十七)——模板

C++语言学习(十七)--模板 一.模板简介 泛型(Generic Programming)即是指具有在多种数据类型上皆可操作的含意. 泛型编程的代表作品STL是一种高效.泛型.可交互操作的软件组件.泛型编程最初诞生于C++中,目的是为了实现C++的STL(标准模板库).其语言支持机制就是模板(Templates).模板的核心思想是参数化类型,即把一个原本特定于某个类型的算法或类当中的类型信息抽掉,抽出来做成模板参数T. 二.函数模板 1.宏实现交换函数 定义一个交换两个数的宏 #define

20175312 2018-2019-2 《Java程序设计》第10周学习总结

20175312 2018-2019-2 <Java程序设计>第10周学习总结 教材学习内容总结 已依照蓝墨云班课的要求完成了第十二章的学习,主要的学习渠道是PPT,和书的课后习题. 总结如下: 1.第十二章的主要内容: Java中的线程 Thread类与线程的创建 线程的常用方法 线程同步 协调同步的线程 线程联合 GUI线程 计时器线程 2.除了课本内容,还学习了有关--数据库MySQL(课下作业,必做)的内容 3.课本代码已经上传至码云,链接如下: https://gitee.com/d

python基础学习 第十七天 (一)

python基础学习 第十七天 (一) 一. 类与类之间的关系 ?千世界, 万物之间皆有规则和规律. 我们的类和对象是对?千世界中的所有事物进?归类. 那事物之间存在着相对应的关系. 类与类之间也同样如此. 在?向对象的世界中. 类与类中存在以下关系:我们会使用这个关系就行,不用扣这写名词 依赖关系 组合关系 继承关系(类的三大特性之一:继承.) 1.1 依赖关系 ?先, 我们设计?个场景. 夏天到了大象很热,大象想到冰箱中. 注意. 在这个场景中, 其实是存在了两种事物的. ?个是?象, ?象

20145331 《Java程序设计》第10周学习总结

20145331 <Java程序设计>第10周学习总结 教材学习内容总结 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的数据,这个就是狭义的网络编程范畴.在发送和接收数据时,大部分的程序设计语言都设计了专门的API实现这些功能,程序员只需要调用即可. 网络编程步骤: 1. 建立网络连接 客户端网络编程的第一步都是建立网络连接.在建立网络连接时需要指定连接到的服务器的IP地址和端口号,建立完成以后,会形成一条虚