python基础——模块和包

7 篇文章 1 订阅

python基础

模块

一个以.py为后缀的文件成为模块
python模块可以包含类、函数、变量和可执行语句

导入模块的几种方式

import 模块路径 【可选:as 别名】
from 模块路径 import 功能名【可选:as 别名】
from 模块路径 import *

注意事项

  1. 如果导入多个模块,且模块中含有同名的功能时,如果调用该功能,调用的是后面导入的模块的功能

模块定位顺序

python解析器对模块位置的搜索顺序为:

  1. 当前目录
  2. pythonpath下的目录
  3. python默认目录,不同的系统默认路径也不相同默认路路径⼀一般为/usr/local/lib/python/
    所以自己的文件名不要和已有模块重名,否则导致模块功能无法使用
    模块名的命名规范为标识符规范

_all_

如果一个模块中有 __all__变量,如果使用from 模块名 import *时,只能导入这个列表中的元素
例如:

类定义部分:
__all__ = ['Father']
class Father:
    name = 'zhangsan'
    age = 20
    money = 500000
    __dono = '这是我自己的'
    small = '这是可以继承的属性'
    def __init__(self,name,age,money):
        self.name = name
        self.age = age
        self.money = money
    def study(self):
        print('我是老爹的study方法')
    @classmethod
    def have_done(cls):
        return cls.__dono
    @staticmethod
    def sleep():  # 如果没有@staticmethod 不传参编译不通过
        print('睡觉啦')
    def __str__(self):
        return '我是父类'
    def get_done(self):
        return self.__dono
    def set_done(self,dono):
        self.__dono = dono

class Sun2(Father):
    def study(self):
        print('我是老二的study方法')

class Sun(Father):
    def study(self):
        print('我是老大的study方法')
调用部分:
from clas_20210711.继承 import *

if __name__ == '__main__':
    zhangsan = Father('zhangsan', 45, 50000)
    lisi = Sun('lisi',20,1000)  # NameError: name 'Sun' is not defined

包也就是文件夹,包中存放的是模块和_init_.py,这个文件控制包的导入行为
在_init_.py中添加_all_=[]列表,控制允许导入的模块列表

注意,如果包内有模块需要被别的模块导入,则包名不能以数字开头,否则导入报错

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值