python的模块导入问题

以下内容参考:http://www.xinxingjiaocheng.com/online/item/7/89

1.给模块起个别名

如果一个模块的名字很长很长,就像这样comput_the_value_of_the_variable,你导入模块是这样子:

import comput_the_value_of_the_variable,导入之后每次调用里面的变量或者函数的时候都要写这么一长串的名字,我就问你烦不烦?尤其是当你是一个崇尚简约的人的时候。即便你打头几个字母,pycharm会自动给你调出来这个串,估计你也不太像一次又一次的看见它。此时我们可以给它起个别名,这样:import comput_the_value_of_the_variable as sky,这样你需要调用里面的dognxi的时候只需写sky.dongxi。

2.从一个模块中导入全部内容与导入部分内容(个别变量或函数)

假定模块名是hello.py,里面有变量a,b,c和函数f1(),f2(),f3(),导入全部函数和变量:from hello import *

导入部分内容:from hello import a,b,f3()

这样子的话调用函数的时候不用写模块.函数名了,直接怼函数名或者变量名就行。

3.目录作为模块

实际上,1和2在导入模块是是默认当前的程序与导入的模块在同一个文件夹之下,如果导入非当前文件夹之下的文件模块,会出错哒。所以,正确的模块导入方式是带上目录名字:比如lianxi_6.py的文件路径是:D:\good\s12_1\day2,那么导入lianxi_6模块的时候(假如当前的.py文件是test4.py,路径是:D:\good\s12_1\star,它应该和lianxi_6.py文件在同一级别的上级文件目录s12_1之下)就该酱紫: import day2.lianxi_6 as you,day2是lianxi_6.py文件所在的文件夹的名字。

import day2.lianxi_6 as you
you.hello()
you.bye()

hello()函数和bye()函数(在lianxi_6.py文件里面定义的):

def hello():
    print(‘黄河远上白云间,‘)
    print(‘一片孤城万仞山。‘)
def bye():
    print(‘羌笛何须怨杨柳,‘)
    print(‘春风不度玉门关。‘)

假如一个目录里面有很多(文件)模块需要我们导入,那我们要一直写from hello import *...吗?不,此时我们可以在这个目录下新建一个__init__.py文件(注意下划线是两个),用这个文件把所有需要导入的模块统一起来。里面这样写:

from good.a import *

from good.b import *

from good.c import *

a,b,c是good文件夹下的.py文件,也就是需要导入的那些模块。

此时调用方法是:

import good
good.f1()
good.f2()

也可以在__init__.py文件中定义__all__变量,这样写:

__all__=[‘a‘,‘b‘,‘c‘]

此时调用方法是:

from good import *
a.f1()
b.f2()
c.f3()

原文地址:https://www.cnblogs.com/yibeimingyue/p/9343962.html

时间: 2024-10-01 07:04:52

python的模块导入问题的相关文章

浅谈 Python 的模块导入

浅谈 Python 的模块导入 本文不讨论 Python 的导入机制(底层实现细节),仅讨论模块与包,以及导入语句相关的概念.通常,导入模块都是使用如下语句: import ... import ... as ... from ... import ... from ... import ... as ... 一般情况下,使用以上语句导入模块已经够用的.但是在一些特殊场景中,可能还需要其他的导入方式.例如 Python 还提供了 __import__ 内建函数和 importlib 模块来实现动

Python 之模块导入

Python之所以应用越来越广泛,在一定程度上也依赖于其为程序员提供了大量的模块以供使用,如果想要使用模块,则需要导入.导入模块有一下几种方法: import module from module.xx.xx import xx from module.xx.xx import xx as rename   from module.xx.xx import * 导入模块其实就是告诉Python解释器去解释那个py文件 导入一个py文件,解释器解释该py文件 导入一个包,解释器解释该包下的 __i

Python之模块导入

import sys #import module (.py)import functools #名词空间 functoolsprint(functools) print("-------------os----------------------")import os.path #dir-->名词空间 os::os&path是二个py文件print(os)from inspect import Signatureprint(Signature.__module__) #

python:模块导入之浅认识

(1)python有大量的模块: 1.内部提供的模块:不需要安装,可以直接调用 2.第三方库:包括业内开源的模块和自己开发的,需要安装 (2)什么是pyc文件: pyc文件的pycodeobject的一种持久化保存,而pycodeobject则是python真正编译的结果 明白什么时pyc文件,则我们需要从python的运行过程说起: 1.首先当python程序运行时,编译的结果则是保存在位于内存中的pycodeobject中,当python运行结束时,将pycodeobject写入到pyc文件

Python自定义模块导入

在Python中经常会将不同功能的代码写到不同的package中,当一个package需要从另一个packageg中导入方法(或者说调用函数)时,则需要导入这个模块,否则,python是不知道这个被导入模块的路径的. 例如: 在day4面向对象这个文件夹下面,有三个模块(backend.logic.config)和一个python文件(user.main.py) 其中backend模块下包含有db模块和logic模块.而logic模块下有一个handle.py的文件,这个文件中定义了三个函数:

Python import 模块导入问题

最近在用Python做决策树(Decision tree)时, 遇见了一个以前没有遇到的问题,就是用'import sklearn.tree'时一切正常,但是'import sklearn..... sklearn.tree'时却报错说: AttributeError: 'module' object has no attribute 'tree'. python的导入机制是这样的,在用 'import sklearn' 时,它只会导入 \${sklearn_dir}/__init__.py 里

Python基础-----模块导入注意事项

#!/usr/bin/env python#-*- coding:utf-8 -*- '''python文件一般都是不同的package(包)放置不同的功能文件若需要导入同级或者上级目录包中文件,则需要在环境变量导入模块所在路径''' # 1 __file__ 返回当前文件位置'''__file__表示显示文件当前的位置 但是:如果当前文件包含在sys.path里面,那么,__file__返回一个相对路径! 如果当前文件不包含在sys.path里面,那么__file__返回一个绝对路径!'''

python之模块导入方法总结

模块在python编程中的地位举足轻重,熟练运用模块可以大大减少代码量,以最少的代码实现复杂的功能. 下面介绍一下在python编程中如何导入模块: (1)import 模块名:直接导入,这里导入模块中的所有与函数: import configparserimport timeimport sys 这里的模块也可以是自己编写的脚本名称,如: #hello.pydef hello1(): print("hello world!") import hello (2) from 模块名 im

python动态模块导入

首先创建一个模块目录lib,然后在目录内创建一个模块为:aa.py 官方推荐: import importlib aa = importlib.import_module('lib.aa') c = aa.c() print(c) __import__导入方式 lib = __import__('lib.aa') # 相当于import libc = lib.aa.c()print(c) 原文地址:https://www.cnblogs.com/jasonLiu2018/p/10733366.h