封装面向对象三大特性:继承封装多态隐藏对象的属性和实现细节,仅对外提供公共访问方法广义上的封装:把方法和变量都封装在类中狭义上的封装:在类的外部干脆不能调用了优点将变化隔离便于使用提高复用性提高安全性封装原则:将不需要对外提供的内容隐藏起来把属性都隐藏,提供公共方法对齐访问私有变量和私有方法在python中用双下划线开头的方式将属性隐藏起来(设置成私有的)代码实例#其实这仅仅这是一种变形操作#类中所有双下划线开头的名称如__x都会自动变形成:_类名__x的
系统 2019-09-27 17:56:45 1719
在工作中遇到一个需求,需要用Python脚本读取一个13G的文件,把每行的记录写入redis。由于机器的内存只有8G,所以不能一次将磁盘上的文件全部读入内存,需要一行一行读取文件。Python按行读取文件主要是使用file.readline方法或者利用file对象的迭代器性质,而file.readlines方法则是一次把所有内容从磁盘读入内存。当内存足够时,file.readlines方法显然会更快,因为磁盘I/O次数更少。下面给出了三种遍历文件每行的方式
系统 2019-09-27 17:56:36 1719
Python的富比较方法包括__le__、__ge__分别表示:小于等于、大于等于,对应的操作运算符为:“<=”、“>=”。那么是否象普通数字运算一样,这两个方法之间存在互反的关系呢?Python没有对__le__、__ge__这两个方法之间有什么强制关系,但建议__le__和__ge__为互反,开发者完全可以根据业务逻辑的需要自己定义。我们来进行分析验证:当自定义类中两个方法都定义了时,“<=”、“>=”分别调用__le__和__ge__方法;当自定义类
系统 2019-09-27 17:56:26 1719
代码importpsutilprint(dir(psutil))#查看逻辑cpu的个数print(psutil.cpu_count())#查看物理cpu的个数print(psutil.cpu_count(logical=False))#查看cpu的用户时间,系统时间,空闲时间,中断时间print(psutil.cpu_times())#统计每个cpu的使用率print(psutil.cpu_percent(interval=2,percpu=True))#
系统 2019-09-27 17:56:18 1719
python类的继承对于许多文章讲解python类的继承,大多数都是说一些什么oop,多态等概念,我认为这样可能对有一定基础的开发者帮助不是那么大,不如直接用在各种情况下所写的代码,来展示对于某一种代码情况,代码运行会有什么效果。这样可能对开发者的帮助更大。不说废话,直接上代码。这里不区分经典类和新式类,下面分析的对新式类和经典类都适用对于类中的__init__函数,只是一个初始化是调用的一个函数(ps:初始化和创建实例并不是一个过程,实例的创建是通过一个
系统 2019-09-27 17:56:17 1719
Python字符串(string)详解及代码Python的字符串可以使用单引号('),双引号("),三引号(''');三引号(''')里面,可以添加单引号和双引号,也可以通过转义序列(\)添加;字符串放在一起自动连接成为一个字符串;字符串前面添加限定词R或r,表示是自然字符串(naturestring),可以忽略里面的格式限制;在物理行末尾添加"\",可以连接下一个物理行;括号,方括号,大括号也可以一定限度的扩充物理行;具体参见代码注释;代码如下:#-*-
系统 2019-09-27 17:56:15 1719
本文实例讲述了python实现根据图标提取分类应用程序,分享给大家供大家参考。具体方法如下:#!/usr/bin/python#-*-coding:utf-8-*-importImageimportwin32uiimportwin32guidefmake_regalur_image(img,size=(256,256)):returnimg.resize(size).convert('RGB')defsplit_image(img,part_size=(6
系统 2019-09-27 17:56:14 1719
Python入门之内置模块--sys模块1、sys模块sys模块是与python解释器交互的一个接口print(sys.path)#模块查找的顺序print(sys.argv)#命令行参数List,第一个元素是程序本身路径只能在终端执行print(sys.modules)#查看加载到内存的模块print(sys.platform)#查看当前操作系统平台mac-darwinwin-win32print(sys.version)#查看当前解释器的版本sys.e
系统 2019-09-27 17:56:06 1719
在帮朋友解决这个问题后,随便记录一下这三种方法:第一种方法:使用正则表达式:因为当时的要求是判定10.0.0.1到10.255.255.255,原理其实是一样。这里简单回顾一下正则表达式模式的内容:常见的如:\d可以表示0~9的任意一个数字字符而\D是匹配一个非数字字符等价于^^是匹配字符串的开头,但放在[]中表示匹配不在[]中的字符$是匹配字符串的末尾.是匹配除了换行符任意字符{}表示重复几次,例如:^a{2,4}$aa,aaa或aaaa|的是或的意思[
系统 2019-09-27 17:55:59 1719
Python中的sys模块极为基础而重要,它主要提供了一些给解释器使用(或由它维护)的变量,以及一些与解释器强交互的函数。本文将会频繁地使用该模块的getsizeof()方法,因此,我先简要介绍一下:该方法用于获取一个对象的字节大小(bytes)它只计算直接占用的内存,而不计算对象内所引用对象的内存这里有个直观的例子:importsysa=[1,2]b=[a,a]#即[[1,2],[1,2]]#a、b都只有两个元素,所以直接占用的大小相等sys.getsi
系统 2019-09-27 17:55:55 1719