python学习之路(十二)

这节主要介绍一下import!很实用的调用模块的功能。

导入模块 是导入真实的代码

而导入包 是导入包下面的 __init__() 文件

这两个是不一样的

先说模块定义

模块 它就是一个 py 文件

它就是负责从逻辑上 组织代码的

代码里面 它可以有变量 有函数 有类 有逻辑

模块 它不是这些东西的简单堆砌 而是要实现功能

创建模块 就是 new 一个 python file

定义一个模块:

在另一个文件中 要使用这个模块 所以要这样来调用:

模块名 点 变量名

模块名 点 方法名

import module_alexprint(module_alex.name)module_alex.say_hello()

像是现在这种写法 它仅仅导入一个模块

那要如果要导入很多模块 怎么办? —— 逗号分隔

为防止冲突 还有一种别名导入的方式:

import module_alexfrom module_alex import logger as logger_from_alex

def logger():    print(‘i am logger in current file‘)

logger()logger_from_alex()

下面就讲到 import 的本质

字面就是导入一个模块的意思 模块说白了就是一个文件 一堆代码

比方说 import module_alex

它的本质 就是把 module_alex 这个文件解释了一遍

或者说 把 module_alex 这个文件运行了一遍

然后把它运行的结果 赋值给 module_alex 这个变量

那 module_alex 这一堆代码当中 它定义了一些变量

要如果想调用这个变量 就 module_alex.name 这样调用

要如果想调用这个方法 就 module_alex.logger 这样调用

import module_alex

print(module_alex.name)

还可以 from module_alex import name 这种写法

这样子 相当于仅仅解释了 name

如果是这样导入 调用的时候就不用写 module_alex 了

就直接写 name 就可以导入了

from module_alex import name

print(name)

补充一个点 就是写目录结构的时候 右键新建

建的是 package 建完之后发现它自动带上一个文件

那其实 package 就是包 而包的意思就是文件夹 或者目录

它就是以这个 __init__.py 文件为特征的

如果是模块 它就是文件 在里面写代码就 OK 了

如果是包 它就是文件夹 在里面写模块就 OK 了

包 就是从逻辑上组织模块的

导入模块 就是 import 模块名

或者 from 模块名 import 变量名方法名

那导入包 也是 import 包名就 OK 了

导入包 它实际上 是在解释包下面的 __init__() 文件

无论是导入模块 还是导入包 都是在同级路径下才可以导入

那如果不在同一个目录下 怎么导入呢?

统计目录下没有 就不能导入

因为它导入的时候 实际上是去找这个路径了

按什么找呢 按 sys.path 去找

import sysprint(sys.path)

一个一个找一遍 都找不到 就抛异常

那为了能找到 module_alex 就得先把它的父目录 加入 sys.path 里面

print(os.path.abspath(__file__))

结果:

/Users/lucia_gaga/PycharmProjects/practice_lucia/bb/path.py

获取上级:

print(os.path.dirname(os.path.abspath(__file__)))

结果:

/Users/lucia_gaga/PycharmProjects/practice_lucia/bb

就这样一层一层往上找

时间: 2024-08-27 13:07:31

python学习之路(十二)的相关文章

java痛苦学习之路[十二]JSON+ajax+Servlet JSON数据转换和传递

1.首先客户端需要引入 jquery-1.11.1.js 2.其次javaweb工程里面需要引入jar包  [commons-beanutils-1.8.0.jar.commons-collections-3.1.jar.commons-lang-2.4.jar.commons-logging-1.1.3.jar.ezmorph-1.0.6.jar.json-lib-2.3-jdk15.jar] 3.客户端js端代码 4.servlet 服务器,映射的路径CardColl 以上就是整个过程,如果

Python 学习之路(二)

Python 学习之路(二) 以下所用的是Python 3.6 一.条件语句 简单判断 1 if 判断条件: 2 执行语句-- 3 else: 4 执行语句-- 复杂判断 1 if 判断条件1: 2 执行语句1-- 3 elif 判断条件2: 4 执行语句2-- 5 elif 判断条件3: 6 执行语句3-- 7 else: 8 执行语句4-- 二.循环语句 2.1 while语句 和其他语言一样,不同的是多了else语句.在 python 中,while - else 在循环条件为 false

python学习之路(二)

继续上次的学习 (一)首先接触的是变量,先定义一个变量,在python中不需要像C语言中先声明变量,而是可以直接赋值. name="xiaoming" 这里需要注意一点,给变量赋值一定要加双引号,如果不加,就是name等于另一个变量xiaoming. name=xiaoming #这不是赋值 而且,在命名变量的时候也要注意以下三点: 1.变量名只能是 字母.数字或下划线的任意组合 2.变量名的第一个字符不能是数字 3.还有以下关键字不能声明为变量名['and', 'as', 'asse

Python学习笔记(十二)

一.报错处理 Python中可以通过: try: 相关语句块 except 错误类型 as e: print("except:",e) finally: print("finally") 来进行错误的侦测和处理 二.Python中错误的继承 Python中的错误也是class Python中所有的错误类型都继承自BaseException 如果Python中的错误没有被捕获,则其会一层一层的向上抛出,直至被编译器所捕获 三.记录错误 Python中可以通过loggi

Python学习笔记第二十二周(前端知识点补充)

目录: 一.伪类 二.样式 1.字体 2.背景图片 3.margin和padding 内容: 一.伪类 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> a:link{ background-color:red; } a:hover{ backgrou

Python学习笔记(十二) 使用模块

摘抄:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431845183474e20ee7e7828b47f7b7607f2dc1e90dbb000 本文章完全用于个人复习使用,侵删: 我们以内建的sys模块为例,编写一个hello的模块: #!/usr/bin/env python3 # -*- coding: utf-8 -*- ' a test module ' _

python学习之路(二) -- 函数、JSON、终端样式

函数 函数构成 定义函数:使用def即可 def __getName(idCard): return user_info[idCard].Name 其中,__getName即函数的名字,包含一个参数idCard 如果需要有返回值,return即可 def __test(): print(a) return print(b) 上述函数即不包含返回值,return只是表示函数终止,即仅输出a 函数调用 调用方式也很简单:functionName(para_A,para_B....) 参数 参数类型:

python学习笔记(十二):发送邮件

我们在开发程序的时候,有时候需要开发一些自动化的任务,执行完之后,将结果自动的发送一份邮件,python发送邮件使用smtplib模块,是一个标准包,直接import导入使用即可,代码如下: import smtplib from email.mime.text import MIMEText email_host = 'smtp.163.com' #邮箱地址 email_user = '[email protected]' # 发送者账号 email_pwd = 'xxxx' # 发送者密码

Python 学习笔记(十二)Python文件和迭代(一)

文件 文件和文件夹 文件:文本文件.二进制文件 文件夹:(windows) G:\pythonWorkspace\python\study (linux/mac) /home/workspace/python 注意:文件夹路径的斜杠linux与windows不同 windows下文件路径:示例 1 >>> p1="G:\pythonWorkspace\python\study\test.txt" 2 >>> p2 =r"G:\pythonW

python学习之路(二)开发批量主机管理工具

大概思路: 理想效果就是达到类似于saltstack或者是ansible类似的一点小功能,比如 在命令行下输入python3 automatic.py -g dsp -c 'w' 输出: b' 18:24:20 up 3:44, 2 users, load average: 0.00, 0.00, 0.00\nUSER TTY FROM [email protected] IDLE JCPU PCPU WHAT\nroot pts/0 192.168.0.101 17:26 4:11 0.02s