python模块--如何相互调用自己写的模块
一、模块相互调用
同级目录调用时的两种方法
import module
print(module.add(3,8)) from module import add
print(add(2,4))
同级目录的子目录调用
from 文件相互调用 import cal
print(cal.sub(3,8))
from 文件相互调用.cal import sub #这种情况下加一个点(.),然后写目录
print(sub(3,9))
同级目录的子目录的子目录的调用
from 文件相互调用.文件2 import cal2
print(cal2.mul(3,7)) from 文件相互调用.文件2.cal2 import mul
print(mul(3,7))
依次再深一层
from 文件相互调用.文件2.文件3 import cal3
print(cal3.divi(8,2))
from 文件相互调用.文件2.文件3.cal3 import divi
print(divi(8,2))
特殊情况
######### 有一种情况特殊的 #################
from 文件相互调用.文件2 import 文件3 #这种不推荐用这种的
print(文件3.cal3.divi(8,2)) ##### 有一种特殊的调用格式:这种不推荐用。一执行效率低;二不却确定文件是否重复等
from 文件相互调用 import *
print(cal.sub(3,8)) from 文件相互调用.文件2.文件3 import *
print(cal3.divi(8,2))
二、一些细节
#############################################
同时调用多个模块时,可简写如下
import xx, xx,xx, ... #即用逗号隔开 ##############################################
import调用模块时,做了两件事情:
1、会执行一遍被调用的模块
2、引入变量名(即模块名)
##############################################33
通常情况下不会把所有程序写在一个文件里面,而是依据功能写到不同的文件里面
如:
bin文件时程序的的入口
main 文件里只写逻辑程序
module 文件里面只写功能程序 包的功能:
1、用来组织模块的,可以根据模块的功能分包;
2、避免模块冲突;而同名模块放在不同包就不会发生冲突。 ################################################33
if __name__ == "__main__":
print(add(3,5))
print('ok') print(__name__) if __name__ == "__main__": 作用有二:
1、 放入某一个文件种,用来测试该文件的结果,但是,该文件被调用时,该语句不会被执行。
简单说就是:用于被调用文件的测试
2、调用程序里面写上这么一句,可以防止别人修改我的主程序,仅供他人调用而已。
python模块--如何相互调用自己写的模块的更多相关文章
- python - 函数的相互调用 及 变量的作用域
# -*- coding:utf-8 -*- '''@project: jiaxy@author: Jimmy@file: study_函数的相互调用及变量的作用域.py@ide: PyCharm C ...
- python不同包之间调用时提示文件模块不存在的问题
python对于跨包调用函数时,经常会提示模块不存在的问题,主要是python程序执行时,搜索路径导致的,python程序执行的路径依次是: (1)程序根目录(2)环境变量(3)标准库目标(D:\Py ...
- Python与C相互调用、编译
因为最近学习Boost::python的缘故,想尝试下不同语言之间的相互编译. 参考资料:http://blog.csdn.net/joliny/article/details/2457197. 很吃 ...
- Python与Javascript相互调用超详细讲解(2022年1月最新)(三)基本原理Part 3 - 通过C/C++联通
目录 TL; DR python调javascript javascript调python 原理 基于Node.js的javascript调用python 从Node调用python函数 V8 嵌入P ...
- Python与Javascript相互调用超详细讲解(四)使用PyNode进行Python与Node.js相互调用项(cai)目(keng)实(jing)践(yan)
目录 前提 安装 使用 const pynode = require('@fridgerator/pynode')的时候动态链接错误 ImportError: math.cpython-39-x86_ ...
- Python与Javascript相互调用超详细讲解(2022年1月最新)(一)基本原理 Part 1 - 通过子进程和进程间通信(IPC)
TL; DR 适用于: python和javascript的runtime(基本特指cpython[不是cython!]和Node.js)都装好了 副语言用了一些复杂的包(例如python用了nump ...
- Python实例浅谈之三Python与C/C++相互调用
一.问题 Python模块和C/C++的动态库间相互调用在实际的应用中会有所涉及,在此作一总结. 二.Python调用C/C++ 1.Python调用C动态链接库 Python调用C库比较简单,不经过 ...
- python调用C++之pybind11入门(相互调用)
python调用C/C++有不少的方法,如boost.python, swig, ctypes, pybind11等,这些方法有繁有简,而pybind11的优点是对C++ 11支持很好,API比较简单 ...
- Python与C/C++相互调用(python2 调c++那个试了ok)
一.问题 Python模块和C/C++的动态库间相互调用在实际的应用中会有所涉及,在此作一总结. 二.Python调用C/C++ 1.Python调用C动态链接库 Python调用C库比较简单,不经过 ...
随机推荐
- jQuery中兄弟元素、子元素和父元素的获取
我们这里主要总结jQuery中对某元素的兄弟元素.子元素和父元素的获取,原声的Javascript代码对这些元素的获取比较麻烦一些,而jQuery正好对这些方法进行封装,让我们更加方便的对这些元素进行 ...
- Java循环结构 - for, while 及 do...while
Java循环结构 - for, while 及 do...while 顺序结构的程序语句只能被执行一次.如果您想要同样的操作执行多次,,就需要使用循环结构. Java中有三种主要的循环结构: whil ...
- S.O.L.I.D 是面向对象设计(OOD)和面向对象编程(OOP)中的几个重要编码原则
注:以下图片均来自<如何向妻子解释OOD>译文链接:http://www.cnblogs.com/niyw/archive/2011/01/25/1940603.html < ...
- Codeforces Round #349 (Div. 2)
第一题直接算就行了为了追求手速忘了输出yes导致wa了一发... 第二题技巧题,直接sort,然后把最大的和其他的相减就是构成一条直线,为了满足条件就+1 #include<map> #i ...
- 什么情况下用resultType和 resultMap
MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap 那什么情况下用resultType? resultMap 一般用在什么情况下? 如 ...
- 搞懂分布式技术6:Zookeeper典型应用场景及实践
搞懂分布式技术6:Zookeeper典型应用场景及实践 一.ZooKeeper典型应用场景实践 ZooKeeper是一个高可用的分布式数据管理与系统协调框架.基于对Paxos算法的实现,使该框架保证了 ...
- less开发指南(一)- 小牛试刀
[一]less简介 LESS(是.less后缀名的文件) 包含一套自定义的语法及一个解析器,我们根据这些语法定义自己的样式规则,这些规则最终会通过解析器,编译生成对应的 CSS 文件.LESS 并没有 ...
- linux-Centos7安装php
先安装相关依赖包 yum install pcre pcre-devel zlib zlib-devel openssl openssl-devel gd gd-devel libjpeg libjp ...
- python类常用装饰器
class Myclass(object): def __init__(self): pass #必须实例化才能调用 def sayhi(self): print 'hello' #静态方法,跟类没什 ...
- LeetCode OJ:N-Queens(N皇后问题)
Given an integer n, return all distinct solutions to the n-queens puzzle. Each solution contains a d ...