python导入类的方法

  介绍

小编给大家分享一下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 ~

python导入类的方法