当前位置:脚本大全 > > 正文

python中创建类的方法(Python中如何导入类示例详解)

时间:2021-10-15 00:53:15类别:脚本大全

python中创建类的方法

Python中如何导入类示例详解

前言

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

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

1 导入一个类

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

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 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 类:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • from user import user
  •  
  •  
  • deniro = user('deniro', '1')
  • print('账号名:' + deniro.name)
  • 运行结果:

    账号名:deniro

    2 导入一个模块多个类

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

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

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 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
  • 然后在新的文件中调用它:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • # 导入一个类
  • from user import user
  •  
  •  
  • deniro = user('deniro', '1')
  • print('拥有的权限:' + str(deniro.privileges.contents))
  • 运行结果:

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

    3 导入多个类

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

  • ?
  • 1
  • 2
  • 3
  • 4
  • from user import user,privilege
  •  
  • p=privilege(["删除账号权限"])
  • print('权限内容:'+str(p.contents))
  • 运行结果:

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

    4 导入模块

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

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • import user
  •  
  • ...
  •  
  • p=user.privilege(["删除账号权限"])
  • ...
  • 4 导入所有类

  • ?
  • 1
  • from user import *
  • 非必要,不使用这种导入方式,因为:

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

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

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

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

    总结

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

    原文链接:https://juejin.im/post/5ca6d8d3e51d4576e1314073

    标签:
    上一篇下一篇

    猜您喜欢

    热门推荐