介绍
小编给大家分享一下python导入类的方法,希望大家阅读完这篇文章后大所收获、下面让我们一起去探讨吧!
导入类是一种很有效的编程方式。这样我们就可以把大部分逻辑存储在独立的文件中,然后在主程序编写高级逻逻辑。
1导入一个类
假设有一个用户类,文件名为用户。py,这个待导入的文件,一般称为模块:
class 用户(): ,& # 39;& # 39;& # 39;账号信息& # 39;& # 39;& # 39; , ,def __init__(自我,,名字,,pwd): & # 39;才能& # 39;& # 39;初始化& # 39;& # 39;& # 39; self.name 才能=,名字 self.pwd 才能=pwd #,才能登陆次数 self.login_count 才能=0 , ,def print_login_count(自我): & # 39;才能& # 39;& # 39;打印登陆次数& # 39;& # 39;& # 39; 打印才能(& # 39;登陆次数=& # 39;,+,str (self.login_count)) , ,def update_login_count(自我,,num): & # 39;才能& # 39;& # 39;更新登陆次数& # 39;& # 39;& # 39; ,全国矿工工会self.login_count =, , ,def 有效的(自我): & # 39;才能& # 39;& # 39;是否验证通过& # 39;& # 39;& # 39; 打印才能(self.name +, & # 39;,验证通过& # 39;)
我们再定义一个名为德尼罗。py的文件,来导入刚刚定义的用户类:
得到User import 用户 deniro =,用户(& # 39;德尼罗# 39;,,& # 39;1 & # 39;) 打印(& # 39;账号名:& # 39;,+,deniro.name)
运行结果
账号名:德尼罗
2导入一个模块多个类
可以根据需要,在同一个模块中定义任意数量的类,不过这些在同一个模块中的类最好是相关的。
我们在用户。py中定义了一个,类特权,并作为用户类的属性:
class 用户(): ,& # 39;& # 39;& # 39;账号信息& # 39;& # 39;& # 39;, ,def __init__(自我,,名字,,pwd): & # 39;才能& # 39;& # 39;初始化& # 39;& # 39;& # 39; self.name 才能=,名字 self.pwd 才能=pwd #,才能登陆次数 self.login_count 才能=0 #,才能拥有的权限 self.privileges 才能=,特权((& # 39;修改某某账号密码& # 39;,,& # 39;禁用某某账号& # 39;]) , ,def print_privileges(自我): & # 39;才能& # 39;& # 39;打印拥有的权限& # 39;& # 39;& # 39; 打印(self.privileges.contents),才能 … class 特权(): ,& # 39;& # 39;& # 39;权限& # 39;& # 39;& # 39;, ,def __init__(自我,,内容): self.contents 才能=,
然内容后在新的文件中调用它:
#,导入一个类 得到User import 用户 deniro =,用户(& # 39;德尼罗# 39;,,& # 39;1 & # 39;) 打印(& # 39;拥有的权限:& # 39;,+,str (deniro.privileges.contents))
运行结果
拥有的权限:[& # 39;修改某某账号密码& # 39;,,& # 39;禁用某某账号& # 39;]
3导入多个类
可以在一个模块中导入多个类,用逗号分隔这些需要导入类。导入后,就可以根据应用场景,来创建任意数量的类实例。
从用户导入用户特权
得到User import 用户特权 , p=特权([“删除账号权限“)) 打印(& # 39;权限内容:& # 39;+ str (p.contents))
运行结果
权限内容:[& # 39;删除账号权限& # 39;]
4导入模块
我们还可以一次性导入整个模块,这需要使用句点表示法来调用相应的类:
import 用户 … p=User.Privilege([“删除账号权限“)) …
导入所有类
得到User import *
非必要,不使用这种导入方式,因为:
通过文件开头定义良好的导入语句,我们就可以清楚地知道使用了哪些类。但这种导入方式没有提供这种好处。
如果不小心导入了一个与本程序文件中同名的类,就会引发难以诊断的错误。
如果确实需要从一个模块中导入很多类,那么建议导入整个模块,然后使用module_name。class_name语法来调用它们。
5在模块中导入另一个模块
为了避免模块太大或者保证模块中的类都是相关的,这时就需要将类分散到多个模块中。这样,可能一个模块中的类会依赖另一个模块中的类。这种场景下,我们就会在一个模块中导入另一个模块。因为导入语法相同,所以在此就不赘述啦O (∩_∩) O ~