python导入类的方法
小编给大家分享一下python导入类的方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!
导入类是一种很有效的编程方式。 这样我们就可以把大部分逻辑存储在独立的文件中,然后在主程序编写高级逻逻辑。
1 导入一个类
假设有一个 User 类,文件名为 User.py,这个待导入的文件,一般称为模块:
classUser():'''账号信息'''def__init__(self,name,pwd):'''初始化'''self.name=nameself.pwd=pwd#登陆次数self.login_count=0defprint_login_count(self):'''打印登陆次数'''print('登陆次数='+str(self.login_count))defupdate_login_count(self,num):'''更新登陆次数'''self.login_count=numdefvalid(self):'''是否验证通过'''print(self.name+'验证通过')
我们再定义一个名为 deniro.py 的文件,来导入刚刚定义的 User 类:
fromUserimportUserdeniro=User('deniro','1')print('账号名:'+deniro.name)
运行结果
账号名:deniro
2 导入一个模块多个类
可以根据需要,在同一个模块中定义任意数量的类,不过这些在同一个模块中的类最好是相关的。
我们在 User.py 中定义了一个 Privilege 类,并作为 User 类的属性:
classUser():'''账号信息'''def__init__(self,name,pwd):'''初始化'''self.name=nameself.pwd=pwd#登陆次数self.login_count=0#拥有的权限self.privileges=Privilege(['修改某某账号密码','禁用某某账号'])defprint_privileges(self):'''打印拥有的权限'''print(self.privileges.contents)...classPrivilege():'''权限'''def__init__(self,contents):self.contents=contents
然后在新的文件中调用它:
#导入一个类fromUserimportUserdeniro=User('deniro','1')print('拥有的权限:'+str(deniro.privileges.contents))
运行结果
拥有的权限:['修改某某账号密码','禁用某某账号']
3 导入多个类
可以在一个模块中导入多个类, 用逗号分隔这些需要导入类。 导入后, 就可以根据应用场景,来创建任意数量的类实例。
from User import User,Privilege
fromUserimportUser,Privilegep=Privilege(["删除账号权限"])print('权限内容:'+str(p.contents))
运行结果
权限内容:['删除账号权限']
4 导入模块
我们还可以一次性导入整个模块, 这需要使用句点表示法来调用相应的类:
importUser...p=User.Privilege(["删除账号权限"])...
导入所有类
fromUserimport*
非必要,不使用这种导入方式,因为:
通过文件开头定义良好的 import 语句, 我们就可以清楚地知道使用了哪些类。但这种导入方式没有提供这种好处。
如果不小心导入了一个与本程序文件中同名的类, 就会引发难以诊断的错误。
如果确实需要从一个模块中导入很多类,那么建议导入整个模块, 然后使用 module_name.class_name 语法来调用它们。
5 在模块中导入另一个模块
为了避免模块太大或者保证模块中的类都是相关的, 这时就需要将类分散到多个模块中。这样, 可能一个模块中的类会依赖另一个模块中的类。这种场景下, 我们就会在一个模块中导入另一个模块。因为导入语法相同,所以在此就不赘述啦O(∩_∩)O~
建议一开始让代码结构尽可能简单。 即先尽可能在一个文件中完成所有的工作, 确定一切都能满足业务要求正确执行后,再将类移到独立的模块中。
看完了这篇文章,相信你对python导入类的方法有了一定的了解,想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。