python中创建类的方法(Python中如何导入类示例详解)
python中创建类的方法
Python中如何导入类示例详解前言
随着我们不断地在一个文件中添加新的功能, 就会使得文件变得很长。 即便使用了继承,也抑制不住类的成长。为了解决这一问题,我们可以将类存储在模块中, 然后在主程序中导入所需的模块,这样可以让文件尽可能保持整洁,从而实现更好的管理。
导入类是一种很有效的编程方式。 这样我们就可以把大部分逻辑存储在独立的文件中,然后在主程序编写高级逻辑咯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~
建议一开始让代码结构尽可能简单。 即先尽可能在一个文件中完成所有的工作, 确定一切都能满足业务要求正确执行后,再将类移到独立的模块中。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对开心学习网的支持。
原文链接:https://juejin.im/post/5ca6d8d3e51d4576e1314073
- python如何获取列表值(Python中按键来获取指定的值)
- pythonmatplotlib画图流程(python3使用matplotlib绘制条形图)
- python中tryexcept的用法(对python中的try、except、finally 执行顺序详解)
- python 后台django(Python Django给admin添加Action的方法实例详解)
- python中迭代器的作用(Python3.5迭代器与生成器用法实例分析)
- python自定义定时任务(python的schedule定时任务模块二次封装方法)
- python 常用爬虫库(Python常用爬虫代码总结方便查询)
- opencv提取图像轮廓python代码(Python基于opencv调用摄像头获取个人图片的实现方法)
- python注册码实现(python实现Virginia无密钥解密)
- python电脑端微信自动化(python使用wxpy实现微信消息防撤回脚本)
- kmp算法怎么用c描述(详解小白之KMP算法及python实现)
- python代码计算一个月多少天(Python计算时间间隔精确到微妙的代码实例)
- pythonsql注入检测(Python版Mssql爆破小脚本)
- pythonfor循环如何遍历嵌套列表(在Python中,不用while和for循环遍历列表的实例)
- python贪吃蛇项目介绍(python简单贪吃蛇开发)
- python爬虫入门自学(自学python爬虫的建议和周期预算)
- 靳东领衔打造高精职场 新丽出品《精英律师》曝定妆照(靳东领衔打造高精职场)
- 靳东新剧《精英律师》定档,众星云集,这剧可追(靳东新剧精英律师定档)
- 精英律师 廖佳敏封印恋情曝光,顾婕马失前蹄 你个老不死的(廖佳敏封印恋情曝光)
- 以家人之名广受好评,剧情生动引起观众共鸣,演员张新成圈粉无数(以家人之名广受好评)
- 三兄妹感情再遇波折,人设接连崩塌 《以家人之名》剧情猜不透(三兄妹感情再遇波折)
- 《小敏家》金波想要复婚 这只是他圈套的第1步,更可恶的在后面(小敏家金波想要复婚)
热门推荐
- dedecms怎么设置下拉菜单(织梦DedeCMS实现 三级栏目_二级栏目_一级栏目_网站名称 的效果代码)
- 源代码管理中出现重复文件的解决方法
- h5支付接口第四方支付(h5移动端调用支付宝、微信支付的实现)
- python查找含特定字符的字符串(Python实现查找字符串数组最长公共前缀示例)
- python画图教程(详解用Python练习画个美队盾牌)
- linux关闭autofs服务命令(Linux系统的ECS实例挂载NAS提示“mount: can't find /root/nas in /etc/fstab”错误的解决)
- css用什么设置透明度(详解css透明度之rgba和opacity的区别及兼容)
- php扩展库使用教程(php使用pecl方式安装扩展操作示例)
- idea 远程部署docker(IDEA使用Docker插件菜鸟教程)
- docker10个小技巧(docker比赛提交常用命令小结)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9