python全栈开发_day29_元类(下)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python全栈开发_day29_元类(下),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2095字,纯文字阅读大概需要3分钟。
内容图文
![python全栈开发_day29_元类(下)](/upload/InfoBanner/zyjiaocheng/829/a28f174a5c8b46339fe79191d16fda78.jpg)
单例
class Song:
__instance = None
def __init__(self):
pass
@classmethod
def getInstance(cls):
if cls.__instance == None:
cls.__instance = cls()
return cls.__instance
s1 = Song.getInstance()
s2 = Song.getInstance()
print(s1, s2)
def singleton(cls):
_instance = None
def getInstance(*args, **kwargs):
nonlocal _instance
if _instance == None:
_instance = cls(*args, **kwargs)
return _instance
return getInstance
?
@singleton
class A:
def __init__(self, num):
self.num = num
print(A(1), A(2), A(3))
class A:
__instance = None
def __new__(cls, *args, **kwargs):
if cls.__instance == None:
cls.__instance = super().__new__(cls)
return cls.__instance
print(A(), A())
# single_module.py
class Single:
pass
singleton = Single()
?
# 测试文件
from single_module import singleton
print(singleton)
print(singleton)
就选课系统分析面向对象思想
'''
1.做项目,优先考虑要用到哪些对象:老师、学生、管理员、课程、学校等等,那就优先为这些对象创建出对应的类,而不是优先考虑项目要去实现哪些功能,功能的出发点永远从创建类开始,优先想到了该项目有哪些功能,也是重点向这些功能应该封装成什么类
?
2.类一旦有了,再思考,该类应该有哪些属性,这就是设计__init__方法的过程,然后思考该类有哪些方法,不需要对象的参与,就是类方法,需要就是对象方法
?
3.对于数据的存储,我们最终要持久化到文件或是硬盘,但是数据要在程序中使用,那就必须在内存中使用,那么数据在内存中采用哪种方式存储,列表可以,但是索引标识数据方式很不方便,字典可以,具有信息标识,对象也可以,具有信息标识,而且访问数据修改数据采用.语法,相当简单,所以优选对象存储,这也是面向对象的优点
?
4.那么随着项目的发展,很多类就仅仅用来存放数据的,那这样的类就可以称之为Model类,那这些类的数据也具备很多业务逻辑,那我们在面向对象思想中,不是将功能写在Model类中,而是定义处理业务的工具类,必然专门操作与数据库打交道的操作,丢在DB_Handle类中,那这样专门处理业务逻辑的类,我们称之为Ctrl类
?
5.而大型项目中有大量与用户交互的页面,我们也用专门的类来控制,这就是View类,就选课系统而言,可以封装打印各自信息的各种方法,也是在Ctrl的合适位置调用即可,这就是面向对象的 MVC 设计模式
'''
内容总结
以上是互联网集市为您收集整理的python全栈开发_day29_元类(下)全部内容,希望文章能够帮你解决python全栈开发_day29_元类(下)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。