Python——创建更加牛逼的对象

简介:

    什么叫更加牛逼的对象?其实是一种更高级别的对象——管理对象

什么是管理对象:
    一种用来管理其他对象的对象,这种对象可以将一切都绑在一起

管理对象的作用:
    将工作委托给其他方法,只需按照规定好的顺序委托其他方法工作

好吧!有点晕乎乎的感觉!我想了个例子,比如系统打补丁。

操作系统打补丁一般需要经历三个步骤:
1、下载补丁
2、安装补丁
3、重启系统

那么,管理对象只需确保这3个步骤按顺序发生即可!!
下面的代码只是对事件的模拟,看下面的代码:

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
class  Host:
     def  __init__( self , hostname, ip):
         self .hostname  =  hostname
         self .ip  =  ip
 
     def  patch_repair( self ):
         #管理者方法(补丁修复顺序)
         self .download_patch()  #下载
         self .install_patch()  #安装
         self .reboot_system()  #重启
 
     def  download_patch( self ):
         #补丁下载
         print ( "{} Start downloading the patch" . format ( self .hostname))
 
     def  install_patch( self ):
         #补丁安装
         print ( "{} Start install patch" . format ( self .hostname))
 
     def  reboot_system( self ):
         #重启系统
         print ( "{} Start reboot system" . format ( self .hostname))
 
if  __name__  = =  '__main__' :
 
     =  Host( "pc001" "192.168.89.67" )
     h.patch_repair()


似乎没毛病!那么这样做的好处是啥?
    1、增强可读性,每一个步骤的代码都是独立的,
    2、增强可扩展性,如果子类只需下载补丁的方法,那么就可以直接继承并覆盖它,重写它
    3、增强隔离性,一个外部类可以创建这个类的实例,可以直接使用其中的一个方法,而不是 patch_repair



本文转自 TtrToby 51CTO博客,原文链接:http://blog.51cto.com/freshair/2064521

相关文章
|
1月前
|
Python
解决Python报错:DataFrame对象没有concat属性的多种方法(解决方案汇总)
总的来说,解决“DataFrame对象没有concat属性”的错误的关键是理解concat函数应该如何正确使用,以及Pandas库提供了哪些其他的数据连接方法。希望这些方法能帮助你解决问题。记住,编程就像是解谜游戏,每一个错误都是一个谜题,解决它们需要耐心和细心。
92 15
|
1月前
|
安全 测试技术 开发者
Python中的“空”:对象的判断与比较
在Python开发中,判断对象是否为“空”是常见操作,但其中暗藏诸多细节与误区。本文系统梳理了Python中“空”的判定逻辑,涵盖None类型、空容器、零值及自定义对象的“假值”状态,并对比不同判定方法的适用场景与性能。通过解析常见误区(如混用`==`和`is`、误判合法值等)及进阶技巧(类型安全检查、自定义对象逻辑、抽象基类兼容性等),帮助开发者准确区分各类“空”值,避免逻辑错误,同时优化代码性能与健壮性。掌握这些内容,能让开发者更深刻理解Python的对象模型与业务语义交集,从而选择最适合的判定策略。
41 5
|
1月前
|
人工智能 Python
[oeasy]python083_类_对象_成员方法_method_函数_function_isinstance
本文介绍了Python中类、对象、成员方法及函数的概念。通过超市商品分类的例子,形象地解释了“类型”的概念,如整型(int)和字符串(str)是两种不同的数据类型。整型对象支持数字求和,字符串对象支持拼接。使用`isinstance`函数可以判断对象是否属于特定类型,例如判断变量是否为整型。此外,还探讨了面向对象编程(OOP)与面向过程编程的区别,并简要介绍了`type`和`help`函数的用法。最后总结指出,不同类型的对象有不同的运算和方法,如字符串有`find`和`index`方法,而整型没有。更多内容可参考文末提供的蓝桥、GitHub和Gitee链接。
62 11
|
5月前
|
存储 数据处理 Python
Python如何显示对象的某个属性的所有值
本文介绍了如何在Python中使用`getattr`和`hasattr`函数来访问和检查对象的属性。通过这些工具,可以轻松遍历对象列表并提取特定属性的所有值,适用于数据处理和分析任务。示例包括获取对象列表中所有书籍的作者和检查动物对象的名称属性。
81 2
|
5月前
|
缓存 监控 算法
Python内存管理:掌握对象的生命周期与垃圾回收机制####
本文深入探讨了Python中的内存管理机制,特别是对象的生命周期和垃圾回收过程。通过理解引用计数、标记-清除及分代收集等核心概念,帮助开发者优化程序性能,避免内存泄漏。 ####
124 3
|
7月前
|
存储 缓存 Java
深度解密 Python 虚拟机的执行环境:栈帧对象
深度解密 Python 虚拟机的执行环境:栈帧对象
137 13
|
7月前
|
索引 Python
Python 对象的行为是怎么区分的?
Python 对象的行为是怎么区分的?
73 3
|
7月前
|
存储 缓存 算法
详解 PyTypeObject,Python 类型对象的载体
详解 PyTypeObject,Python 类型对象的载体
127 3
|
7月前
|
机器人 关系型数据库 Python
【Python篇】Python 类和对象:详细讲解(下篇)
【Python篇】Pyt hon 类和对象:详细讲解(下篇)
74 2
|
7月前
|
缓存 Java 程序员
一个 Python 对象会在何时被销毁?
一个 Python 对象会在何时被销毁?
109 2