Python基础-模块和包
模块和包的相关用法
自定义模块 定义的py文件就可以当做一个模块,如下define_mod.py文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 """ 这个说明文档 my_book 字符串变量 say_hi say_hi函数 User 用户类 """ print("this is test module" ) my_book = "this is book var" def say_hi (user) : print('%s,欢迎学习python' % user) class User : def __init__ (self, name) : self.name = name def walk (self) : print('%s is walking' % self.name) def __repr__ (self) : return 'User[name=%s]' % self.name __all__ = ['say_hi' , 'User' ] def test_my_book () : print(my_book) def test_say_hi () : say_hi('lulu' ) say_hi(User('dodo' )) def test_user () : u = User('toto' ) u.walk() print(u) if __name__ == '__main__' : test_my_book() test_say_hi() test_user()
包 包就是一个文件夹,里面会包含__init__.py文件,可以将改文件夹的文件里面的文件引入__init__.py文件
1 2 from . import define_modfrom .define_mod import *
引入和包的用法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 """ 导入模块语法 1.import m1 [as n1],m2 [as n2] 导入整个模块 2.from m1 import member [as n1],member2 [as n2] 导入模块中的指定成员 """ import os as ofrom sys import winver as vfrom sys import pathimport pprintprint(o.sep) print(v) pprint.pprint(path) ''' __all__ 没有my_book ''' import crazyPython.nine.define_mod as define_modu = define_mod.User('soso' ) u.walk() print(define_mod.my_book) import crazyPython.nine as ninenine.say_hi('rrr' ) print(dir(define_mod)) print([e for e in dir(define_mod) if not e.startswith("_" )]) print(define_mod.__all__) print(define_mod.__doc__) import stringprint(string.__file__) print(define_mod.__file__)