首先我需要描述一下要做的这件事情。假定我们有2个类,分别为Person类、Stu类,我们要将这2个类分装成一个包,就是这么简单,那么废话不多说,让我们操作起来。

  • 第1步.建立一个Package,命名为Demo1
    右击项目名->new->Python Package
  • 第2步.在Demo1包下创建Person
class Person:def __init__(self,name,gender):self.name = nameself.gender =  genderdef printinfo(self):print(self.name,self.gender)
  • 第3步.在Demo1包下创建Stu
class Stu():def __init__(self,name,gender,stuid):self.name = nameself.gender = genderself.stuid = stuiddef printinfo(self):print(self.name,self.gender,self.stuid)

完成上述步骤之后,目录结构应该如下图所示:

  • 第3步.如果你使用的IDE是PyCharm,那么当你建立一个Package时,在这个包下会自动生成一个__init__.py文件。如果没有使用PyCharm,那么需要你在Package下自行创建__init__.py文件。当一个文件夹下有__init__.py文件时,Python认为这个文件夹是一个包,__init__.py可以为空,也可以写入一些语句。这里我们写入一些语句,该语句分别从Person和Stu两个模块(modules)里导入Person类和Stu类,也就是说一旦我们导入Person和Stu这两个模块,__init__.py会自动帮我们导入Person类和Stu类,从而我们可以直接使用这两个类。

    • 写法1
    from .Person import Person
    from .Stu import Stu
    
    • 写法2
    from Demo1.Person import Person
    from Demo1.Stu import Stu
    

到此,一个Python的Package就创建好了!

  • 第4步.测试,在Demo1下创建test.py文件
from Demo1.Person import Person
from Demo1.Stu import Stuif __name__ == '__main__':p = Person('djk','man')s = Stu('djk','man','nwnu')p.printinfo()s.printinfo()

Note!!!!!!!!!!:
在__init__.py文件中,我们可以使用以下这种写法:

from .Person import Person
from .Stu import Stu

这不会报错;但是如果在测试文件或不是在__init__.py文件中用这种写法,那么就会报错。假如我在test.py测试文件中用以上这种写法,就会报以下的错误:

要想避免这种错误,那么就不要偷懒了,导入包或者模块的时候都用绝对路径,尽量不用相对路径!!

如何用Python写一个Package相关推荐

  1. 贪吃蛇博弈算法python_算法应用实践:如何用Python写一个贪吃蛇AI

    原标题:算法应用实践:如何用Python写一个贪吃蛇AI 前言 这两天在网上看到一张让人涨姿势的图片,图片中展示的是贪吃蛇游戏, 估计大部分人都玩过.但如果仅仅是贪吃蛇游戏,那么它就没有什么让人涨姿势 ...

  2. [译] 如何用 Python 写一个 Discord 机器人

    原文地址:How to write a Discord bot in Python 原文作者:Junpei Shimotsu 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/go ...

  3. 手机版python3h如何自制游戏_教你如何用 Python 写一个小游戏

    教你如何用 Python 写一个小游戏 引言 最近 python 语言大火, 除了在科学计算领域 python 有用武之地之外, 在游戏后台等方面, python 也大放异彩, 本篇博文将按照正规的项 ...

  4. python爬虫抢火车票_如何用python写一个简单的12306抢票软件|python 爬火车票 教程...

    python 如果抓取验证码图片 类似12306的登录验证码图片 这个以前做次.最大的麻烦是码的识别算法的识别率太低.12306那种网站登陆错3次就限制你20分钟.所以除非你有33%以上的识别率否则不 ...

  5. 如何用python写一个计算日期间隔的程序?

    如何用python写一个计算日期间隔的程序? 文章目录 如何用python写一个计算日期间隔的程序? 前言 问题梳理 问题解决 写在后面 前言 为什么想起来写一个这样的程序呢? 前几天聊天的时候,突然 ...

  6. python 题库自动答题,自动匹配题库_如何用python写一个从题库自动匹配的答题脚本_淘题吧...

    A. web数据库题目:根据用户输入的用户名和密码于数据库中的记录是否匹配制作一个用户登录模块 http://blog.csdn.net/love_leve/article/details/43226 ...

  7. python解析器是什么_如何用python写一个简单的词法分析器

    编译原理老师要求写一个java的词法分析器,想了想决定用python写一个. 目标 能识别出变量,数字,运算符,界符和关键字,用excel表打印出来. 有了目标,想想要怎么实现词法分析器. 1.先进行 ...

  8. python写词法分析器_如何用python写一个简单的词法分析器

    编译原理老师要求写一个java的词法分析器,想了想决定用python写一个. 目标 能识别出变量,数字,运算符,界符和关键字,用excel表打印出来. 有了目标,想想要怎么实现词法分析器. 1.先进行 ...

  9. python能制作游戏吗_如何用python写一个小游戏

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 引言最近python语言大火,除了在科学计算领域python有用武之地之外,在游 ...

最新文章

  1. 何恺明的GN之后,权重标准化新方法能超越GN、BN吗? | 技术头条
  2. python string/list转换
  3. 叶片制成切片的结构示意图_吉林大学《JPCL》:简单方法!制备高性能全叶片涂层量子点LED...
  4. docker 安装 oracle12,Centos7下利用docker安装oracle12c
  5. python paramiko远程执行命令打开窗口_使用Paramiko在远程机器上通过sshClient()执行本地python脚本...
  6. Oracle9i数据库DataGuard实施及维护手册3
  7. HDU2049 不容易系列之(4)考新郎 —— 错排
  8. Javascript特效:循环抽奖
  9. bash快捷建-光标移到行首、行尾等
  10. (附源码)小程序 记账微信小程序 毕业设计 180815
  11. matlab中标准化降水指数程序,标准化降水指数(SPI)计算程序
  12. 谷歌浏览器百度网盘在线倍速播放
  13. 产品经理需要看懂接口文档么?
  14. 1月20日在线研讨会|满足合规和项目裁剪要求的流程管理实践
  15. 七大行星排列图片_八大行星图片欣赏
  16. 邓俊辉算法训练营第三期(带完整课件)
  17. ROS Base path和Source space不一致问题,修改文件名后无法make问题,catkin_make报错问题
  18. cve查询_CVE年满21岁:如何实现这一里程碑
  19. 玉米田 炮兵阵地 状态压缩DP
  20. 创建Hive外部表,关联HDFS文件

热门文章

  1. Alien 快速安装 Rippled 节点【Ubuntu】
  2. 剑指offer-栈的压入、弹出序列
  3. JDBC-连接数据库代码
  4. socket编程之select()
  5. Unity3d webplayer发布的问题和100%自适应浏览器
  6. 【Lucene3.6.2入门系列】第10节_Tika
  7. WIN7系统中连接点(Junction Points)
  8. 脑电信号特征提取常用算法(共空间模式CSP、小波变换DWT、功率谱密度PSD、AR模型)
  9. 统计自然语言处理笔记
  10. Python学习笔记:Dict和Set