Python 这3个知识点,你还真不一定知道

论坛 期权论坛 期权     
大话性能   2019-7-15 08:57   5357   0





每周一07:22,准时为你充电

周末在家看了点python的东西,感觉自己也是有所收获,分享给大家。

1、python到底是函数式编程还是面向对象编程?

其实一开始自己学习python的时候也有困惑,看网上一些代码示例,有用def定义函数,然后各种调用的写法,也有一些定义class类这种写法,当时也困惑,应该怎么用,怎么才算规范的。

其实这个根据你实际的应用场景。
函数模块编程:各个函数之间是独立的且无共用的数据,那么就可以简单的利用函数式编程功能模块,然后调用就可以。
对象编程:主要的应用场景是1、多函数需要使用共同的值。如数据库的增删改查操作都需要用到连接数据库的主机名、用户号、密码等。2、需要创建多个事物,每个事物属性一样,只是值不同。如果是上面2个场景,建议还是定义class类来进行编码。
  
2、什么是反射?

之前在用java的时候,也经常看到反射这个东东,之前也一直没整明白。

其实主要是通过字符串映射object对象的方法或属性。
hasattr(obj, name_str): 判断objec是否有name_str这个方法或者属性
getattr(obj, name_str): 获取object对象中与name_str同名的方法或者函数

demo:一个web页面,需要根据用户输入的URL不同,调用不同的函数,实现不同的操作。





python的反射,它的核心本质其实就是利用字符串的形式去对象(模块)中操作(查找/获取/删除/添加)成员,是一种基于字符串的事件驱动。

3、单例模式

这个字眼之前也老是看到,不过那时候也没去留意,今天看到发现还是挺有用的。
单例模式,是一种常用的软件设计模式。通过单例模式可以保证系统中应用该模式的类一个类只有一个实例,即一个类只有一个对象实例。
举个栗子
也是经常遇到的,某服务器程序的配置信息存放在一个文件当中,客户端通过一个AppConfig的类来读取配置文件的信息。如果在程序运行期间,有很多地方都需要使用配置文件的内容,也就是说,很多地方都需要创建AppConfig 对象的实例,这就导致系统中存在多个AppConfig 的实例对象,严重浪费内存资源,尤其是在配置文件内容很多的情况下。事实上,类似 AppConfig这样的类,我们希望在程序运行期间只存在一个实例对象。这时候就用到了单例模式。

使用模块实现单例模式:python模块天然就是单例模式,当模块第一次被导入时会生成一个.pyc文件,第二次导入该模块就会直接执行.pyc文件而不会再次执行模块里的代码,因此我们可以把需要的函数和数据都定义在一个模块当中,这样就可以保证每次使用的都是同一个对象了。

  1. class Foo7:
复制代码
  1.    def __init__(self):
复制代码
  1.        pass
复制代码
  1.    def foo0(self):
复制代码
  1.        pass
复制代码
  1. [/code][code]obj = Foo7()
复制代码
  1. # 将上面的代码保存在文件xxx.py 中,要使用时,
复制代码
  1. # 直接在其他文件中导入此文件中的对象,这个对象即是单例模式的对象
复制代码
  1. [/code][code]from xxx.py import obj
复制代码
  1. print(id(obj))
复制代码

4、小结

上面就是这个周末的3个可以马上在实践工作中应用的知识点,希望大家能有所收获,点滴积累,充实自己。

觉得内容比较干的,欢迎微信群转发哟。


大话性能网站(关注可以收藏更多好文章)
www.dahuaxingneng.com



如果文章对你有帮助,
还请帮忙转发转发,谢谢。

问题交流/稿件投递
免费领取例子脚本和代码
免费入微信群交流
免费PMP考试咨询
扫一扫,加小T


专题推荐

● jmeter实时可视化图表化(高级
● jmeter5.0源码在eclipse正确打开方式
● jmeter+Jenkins性能测试自动化搭建
● jmeter+Jenkins性能测试高级用法(番外篇)
jmeter的websocket接口性能测试
● jmeter工作实战心法-高级需求(附福利)
● jmeter工作实战心法-必备技能(附赠小技巧)
● jmeter测试mongodb,必会,高级知识
● jmeter tcp脚本的核心知识点理解
● jmeter beanshell脚本如何编写2个例子
● jmeter 如何一步步扩展自己的函数
● jmeter 正则表达式应用
● 新人如何学习性能测试
● 性能测试利剑-微服务的分布式追踪
python如何和java高效的交互
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP