python模块和包的解析

模块

模块包括:1、自定义模块。2、系统模块
一般来说.py文件 都可以被看成一个模块,

导入模块的方法:
1、import 模块名
调用格式:模块名.变量 模块名.函数 模块名.类
2、from 模块名 import 变量|函数|类
调用格式:from 模块名 import 变量1,变量2,变量3,。。。
在代码中可以直接使用变量、函数、类
3、from 模块名 import *
导入该模块中所有内容
但是如果想要限制获取的内容,可以在模块中使用__all__=[使用*可以访问的内容]
4、无论是import还是from形式,都会将模块内容进行加载
如果不希望其进行调用,就会用到__name__
在自己的模块里__main__叫:main
如果在其他模块中通过导入的方式调用的话:name:模块名

假设:模块model.py

class User:
    def __init__(self, username, password):
        self.username = username
        self.password = password

    def login(self, username, password):
        if self.username == username and self.password == password:
            print('登录成功!!!')
        else:
            print('登录失败!!!')

    def show(self):
        print(self.username, self.password)


def run():
    print('models跑步-----------------')


def eat():
    print('models吃饭-----------------')


run()
eat()
# if __name__ == '__main__':
#     run()
#     eat()
#这种情况下的运行结果是:lleff 367456785673

在test1.py中来引用:

from models import User
u1=User('lleff','367456785673')
u1.show()

运行结果:
在这里插入图片描述

包 -------》py.文件
文件夹------》非py.文件
一个包中可以包含多个文件;项目>包>模块>类 函数 变量

  • __init __.py文件

当导入包的时候,默认调用__init__.py文件
作用:
1、导入包的时候,把一些初始化的函数,变量,类定义在__init__.py文件中
2、此文件中函数,变量的访问,只需要通过包名.函数
3、结合__all__=[‘通过*可以访问的文件’]
我的文件夹如下 :
在这里插入图片描述
__init __.py

__all__=['models']
print('------------->user的__init__---------->')

def func1():
    print('---------------1_________')

def func2():
    print('---------------2###########')

model.py

class Article:
    def __init__(self, name, author):
        self.name = name
        self.author = author

    def show(self):
        print('发表文章名字:{}作者是:{}'.format(self.name, self.author))

models.py

class User:
    def __init__(self, username, password):
        self.username = username
        self.password = password

    def login(self, username, password):
        if self.username == username and self.password == password:
            print('登录成功!!!')
        else:
            print('登录失败!!!')

    def show(self):
        print(self.username, self.password)

执行文件package.py

# 使用包中的User类
# from user import models
#
# u = models.User('admin', '123456')
# u.show()

from user.models import User
from articale.articles.model import Article
# from .models import User  # 当前目录下的models里面的User类

u1 = User('llyyrr', '122826')
u1.login('lluu', 'ddec')
u1.show()

a1 = Article('坏小孩', 'zzt')
a1.show()

运行结果
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/LLY_A_/article/details/107040436
今日推荐