美文网首页
python(七) 模块开发

python(七) 模块开发

作者: 淡漠不淡漠 | 来源:发表于2019-11-14 14:50 被阅读0次

python模块开发

import

  • 说的简单点就是引入一个有python代码的文件
  • 引入使用 import 关键字
  • 默认import 不指定目录。会去当前同级目录中查找
    a.py 文件定义一个方法getName
#!/usr/bin/python3
def getName(name):
    return '我的名字是'+name

text.py 引入a.py 并调用getName方法

#!/usr/bin/python3
import a
res = a.getName('a')
print(res)
#输出结果:我的名字是a  

from...import..

  • 当一个python中有多个方法时,但是我们只是想引入需要的部分,可以使用from...import...
  • from 是引入的文件 import 是需要引入的模块
    a.py 中有多个def 函数
#!/usr/bin/python3
def getName(name):
    return '我的名字是'+name
   
def getAge():
    return '我的年龄是18'
   
def getSex():
    return '我的性别是女'

def getNothing():
    return 'nothing'
  • text.py 文件只想引入 getName 和 getAge模块
#!/usr/bin/python3
from a import getName, getAge
res = getName('a') 
age = getAge()
print(res)
print(age)
#输出结果:
我的名字是a
我的年龄是18

如果想引入所有的模块 可以使用 *

#!/usr/bin/python3
from a import * 
res = getName('a') 
age = getAge()
sex = getSex()
print(res)
print(age)
print(sex)
#输出结果:
我的名字是a
我的年龄是18
我的性别是女

如果修改全局变量的值

  • 使用global 关键字
#!/usr/bin/python3
a = 1 
def add():
    global a
    a = a+1

add()
print(a)
输出结果: 2

在引入模块的时候不清楚模块中提供的一些方法、属性 可以通过dir来查看

#!/usr/bin/python3
import a
content = dir(a)
print(content)
#输出结果:['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'getAge', 'getName', 'getNothing', 'getSex']

locals() 和 globals() 函数

  • locals() 在函数中调用可以查看当前作用域的变量
  • globals() 在函数中调用可以查看当前作用域中能访问的全局变量
#!/usr/bin/python3
a = 1
b = 2

def num():
    c = 3
    d = 4
    print('能反问的局部变量:', locals())
    print('能访问的全局变量',globals())
num()

#输出结果:
能反问的局部变量: {'c': 3, 'd': 4}
能访问的全局变量 {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x103eccef0>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'text.py', '__cached__': None, 'a': 1, 'b': 2, 'num': <function num at 0x103db3268>}

相关文章

网友评论

      本文标题:python(七) 模块开发

      本文链接:https://www.haomeiwen.com/subject/hyvlictx.html