前言

随着我们不断地在一个文件中添加新的功能, 就会使得文件变得很长。 即便使用了继承,也抑制不住类的成长。为了解决这一问题,我们可以将类存储在模块中, 然后在主程序中导入所需的模块,这样可以让文件尽可能保持整洁,从而实现更好的管理。

导入类是一种很有效的编程方式。 这样我们就可以把大部分逻辑存储在独立的文件中,然后在主程序编写高级逻辑咯O(∩_∩)O哈哈~

1 导入一个类

假设有一个 User 类,文件名为 User.py,这个待导入的文件,一般称为模块:

class User():

'''账号信息'''

def __init__(self, name, pwd):

'''初始化'''

self.name = name

self.pwd = pwd

# 登陆次数

self.login_count = 0

def print_login_count(self):

'''打印登陆次数'''

print('登陆次数=' + str(self.login_count))

def update_login_count(self, num):

'''更新登陆次数'''

self.login_count = num

def valid(self):

'''是否验证通过'''

print(self.name + ' 验证通过')

我们再定义一个名为 deniro.py 的文件,来导入刚刚定义的 User 类:

from User import User

deniro = User('deniro', '1')

print('账号名:' + deniro.name)

运行结果:

账号名:deniro

2 导入一个模块多个类

可以根据需要,在同一个模块中定义任意数量的类,不过这些在同一个模块中的类最好是相关的。

我们在 User.py 中定义了一个  Privilege 类,并作为 User 类的属性:

class User():

'''账号信息'''

def __init__(self, name, pwd):

'''初始化'''

self.name = name

self.pwd = pwd

# 登陆次数

self.login_count = 0

# 拥有的权限

self.privileges = Privilege(['修改某某账号密码', '禁用某某账号'])

def print_privileges(self):

'''打印拥有的权限'''

print(self.privileges.contents)

...

class Privilege():

'''权限'''

def __init__(self, contents):

self.contents = contents

然后在新的文件中调用它:

# 导入一个类

from User import User

deniro = User('deniro', '1')

print('拥有的权限:' + str(deniro.privileges.contents))

运行结果:

拥有的权限:['修改某某账号密码', '禁用某某账号']

3 导入多个类

可以在一个模块中导入多个类, 用逗号分隔这些需要导入类。 导入后, 就可以根据应用场景,来创建任意数量的类实例。

from User import User,Privilege

from User import User,Privilege

p=Privilege(["删除账号权限"])

print('权限内容:'+str(p.contents))

运行结果:

权限内容:['删除账号权限']

4 导入模块

我们还可以一次性导入整个模块, 这需要使用句点表示法来调用相应的类:

import User

...

p=User.Privilege(["删除账号权限"])

...

4 导入所有类

from User import *

非必要,不使用这种导入方式,因为:

通过文件开头定义良好的 import 语句, 我们就可以清楚地知道使用了哪些类。但这种导入方式没有提供这种好处。

如果不小心导入了一个与本程序文件中同名的类, 就会引发难以诊断的错误。

如果确实需要从一个模块中导入很多类,那么建议导入整个模块, 然后使用 module_name.class_name 语法来调用它们。

5 在模块中导入另一个模块

为了避免模块太大或者保证模块中的类都是相关的, 这时就需要将类分散到多个模块中。这样, 可能一个模块中的类会依赖另一个模块中的类。这种场景下, 我们就会在一个模块中导入另一个模块。因为导入语法相同,所以在此就不赘述啦O(∩_∩)O~

建议一开始让代码结构尽可能简单。 即先尽可能在一个文件中完成所有的工作, 确定一切都能满足业务要求正确执行后,再将类移到独立的模块中。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。

python如何导入类里_Python中如何导入类示例详解相关推荐

  1. python编程字典100例_python中字典(Dictionary)用法实例详解

    本文实例讲述了python中字典(Dictionary)用法.分享给大家供大家参考.具体分析如下: 字典(Dictionary)是一种映射结构的数据类型,由无序的"键-值对"组成. ...

  2. python find的使用方法_Python中的rfind()方法使用详解

    Python中的rfind()方法使用详解 rfind()方法返回所在子str 被找到的最后一个索引,或者-1,如果没有这样的索引不存在,可选择限制搜索字符串string[beg:end]. 语法 以 ...

  3. python编程midi键盘按键_Python中捕获键盘的方式详解

    python中捕获键盘操作一共有两种方法 第一种方法: 使用pygame中event方法 使用方式如下:使用键盘右键为例 if event.type = pygame.KEYDOWN and even ...

  4. python 字典定义日志用法_python中字典(Dictionary)用法实例详解

    本文实例讲述了python中字典(Dictionary)用法.分享给大家供大家参考.具体分析如下: 字典(Dictionary)是一种映射结构的数据类型,由无序的"键-值对"组成. ...

  5. python之pygame安装教程_Python中pygame安装方法图文详解

    搜索热词 本文实例讲述了Python中pygame安装方法.分享给大家供大家参考,具体如下: 这里主要描述一下我们怎样来安装pygame 可能很多人像我一样,发现了pygame是个好东东,但是就是不知 ...

  6. python求奇数的乘积_Python中的推导式使用详解

    推导式是Python中很强大的.很受欢迎的特性,具有语言简洁,速度快等优点.推导式包括: 1.列表推导式 2.字典推导式 3.集合推导式 嵌套列表推导式 NOTE: 字典和集合推导是最近才加入到Pyt ...

  7. 程序语言python如何抓取信息_python中系统信息获取psutil使用详解

    #!/usr/bin/env python #coding:utf-8 import psutil import time import sys from optparse import Option ...

  8. python xlrd课程_python中xlrd模块的使用详解

    一.xlrd的安装 打开cmd输入pip install xlrd安装完成即可 二.xlrd模块的使用 下面以这个工作簿为例 1.导入模块 import xlrd 2.打开工作薄 # filename ...

  9. python中configparser详解_Python中的ConfigParser模块使用详解

    1.基本的读取配置文件 -read(filename) 直接读取ini文件内容 -sections() 得到所有的section,并以列表的形式返回 -options(section) 得到该sect ...

  10. python迭代器创建序列_Python 中迭代器与生成器实例详解

    Python 中迭代器与生成器实例详解 本文通过针对不同应用场景及其解决方案的方式,总结了Python中迭代器与生成器的一些相关知识,具体如下: 1.手动遍历迭代器 应用场景:想遍历一个可迭代对象中的 ...

最新文章

  1. 关于node.js的误会
  2. 8款帅酷的HTML5/CSS3 3D动画、图片、菜单应用
  3. MybatisPlus实现自动填充
  4. Spring5参考指南:基于注解的容器配置
  5. 深入理解C++对象模型-对象的内存布局,vptr,vtable
  6. 福爆 | 博客升级 .NET Core 3.0 又踩一坑
  7. plsql developer无监听程序_微信小程序支持分享到朋友圈啦!技术解读跟我来
  8. 剑指offer 二叉树的深度
  9. C#提取网页中的超链接
  10. SAP License:第三只眼看财务-现金流量表编制
  11. 【恋上数据结构】排序算法前置知识及代码环境准备
  12. 全国计算机一级会考分类汇总吗,全国计算机一级考试分布
  13. fiddler使用文档
  14. ant design pro 水印(删除、修改)
  15. 财富提升成都IT产业吸引力
  16. 错误: -source 1.6 中不支持 diamond 运算符的解决办法
  17. [转]Mac 科研常用软件
  18. 计算机微程序控制器实验报告,计算机组成原理微程序控制器实验报告
  19. 大数据工程师(开发)面试系列(7)
  20. 贵阳c语言学习,贵阳市c语言编程

热门文章

  1. 5.企业安全建设指南(金融行业安全架构与技术实践) --- 安全团队建设
  2. 7. Linux 环境
  3. 8.网页找不到服务器
  4. 3. JavaScript Date 对象
  5. 21. PHP 表单验证 - 完成表单实例
  6. 1. HTML DOM Document 对象
  7. 8. PHP 5 echo 和 print 语句
  8. 计算机系统配置有哪些,查看电脑配置方法有哪些
  9. areact中组件antd中checkbox_19GW光伏组件中/开标价格一览!
  10. Linux命令整理-Kali