本文实例讲述了python中metaclass原理与用法。分享给大家供大家参考,具体如下:什么是metaclass.metaclass(元类)就是用来创建类的类。在前面一篇文章《python动态创建类》里我们提到过,可以用如下的一个观点来理解什么是metaclass:MyClass=MetaClass()MyObject=MyClass()metaclass是python里面的编程魔法同时在前面一篇《python动态创建类》文章里描述动态创建class的时
系统 2019-09-27 17:56:42 2466
前言在使用PC时与PC交互的主要途径是看屏幕显示、听声音,点击鼠标和敲键盘等等。在自动化办公的趋势下,繁琐的工作可以让程序自动完成。比如自动化测试、自动下单交易等。很多软件除了可以GUI方式操作外还可以用CLI接口操作,不过当一些软件未提供CLI接口时,我们应该怎么办呢?我们还可以用程序控制桌面上的窗口、模拟点击鼠标或按下键盘等动作来释放自己。pywin32是一个Python库,它为Python提供访问WindowsAPI的扩展,提供了齐全的windows
系统 2019-09-27 17:55:05 2466
用python处理一个文本时,想要删除其中中某一行,常规的思路是先把文件读入内存,在内存中修改后再写入源文件。但如果要处理一个很大的文本,比如GB级别的文本时,这种方法不仅需要占用很大内存,而且一次性读入内存时耗费时间,还有可能导致内存溢出。所以,需要用另外一个思路去处理。我们可以使用open()方法把需要修改的文件打开为两个文件,然后逐行读入内存,找到需要删除的行时,用后面的行逐一覆盖。实现方式见以下代码。withopen('file.txt','r')
系统 2019-09-27 17:53:58 2466
环境:matplotlib3.1.0,numpy1.15.4目录使用matplotlib作图的两大方法一面对函数绘图(pyplot模块有大量函数,供用户调用)1.主要分为四个步骤:2.代码实例(单图和多图)3.图片展示二面对对象绘图(主要操作Figure和Axes对象)(推荐)1.主要分为四个步骤:2.代码实例(单图和多图)3.图片展示使用matplotlib作图的两大方法本教程可以作为科研作图模板,涵盖了作图中很多小细节,使用了matplotlib作图的
系统 2019-09-27 17:51:46 2466
进程之间共享数据(数值型):importmultiprocessingdeffunc(num):num.value=10.78#子进程改变数值的值,主进程跟着改变if__name__=="__main__":num=multiprocessing.Value("d",10.0)#d表示数值,主进程与子进程共享这个value。(主进程与子进程都是用的同一个value)print(num.value)p=multiprocessing.Process(targ
系统 2019-09-27 17:51:28 2466
在程序运行的过程中,所有的变量都是在内存中,比如,定义一个dict:d=dict(name='Bob',age=20,score=88)可以随时修改变量,比如把name改成'Bill',但是一旦程序结束,变量所占用的内存就被操作系统全部回收。如果没有把修改后的'Bill'存储到磁盘上,下次重新运行程序,变量又被初始化为'Bob'。我们把变量从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,在其他语言中也被称之为serializ
系统 2019-09-27 17:50:29 2466
Python的起源Python的创始人为GuidovanRossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC语言的一种继承。之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,是因为他是一个叫MontyPython的喜剧团体的爱好者。python的特点1.简单Python是一种代表简单思想的语言。2.易学Python有极其简单的语法。3.解释性可以直接从源代码运行。在计算机内部,
系统 2019-09-27 17:49:48 2466
工具类classCalendarUtils:"""日期工具类"""@staticmethoddefdelta_day(delta=0):""":paramdelta:偏移量:return:0今天,1昨天,2前天,-1明天..."""return(datetime.now()+timedelta(days=delta)).strftime('%Y-%m-%d')@staticmethoddefdelta_week(delta=0):""":paramdelt
系统 2019-09-27 17:48:35 2466
CentOS6系统默认Python版本是:2.6.6平时在使用中,某些库要求是2.7.x版本的库,记录Python升级到2.7.x过程。1.准备安装包,系统是最小化安装#下载安装依赖的相关包[root@isTester.com~]#yuminstallvimgccmakewget-y[root@isTester.com~]#yuminstallopenssl-develzlib-develreadline-develsqlite-devel-y#下载[ro
系统 2019-09-27 17:47:54 2466
分析我们都知道一个可迭代对象可以通过iter()可以返回一个迭代器。如果想要一个对象称为可迭代对象,即可以使用for,那么必须实现__iter__()方法。在一个类的实例对象想要变成迭代器,就必须实现__iter__()和__next__()方法。调用iter()时,在对象内部默认调用__iter__(),即__iter__()的返回值应该是一个迭代器。for的每次循环中或者next()时,都是自动调用迭代器的__next__()方法,并有一个返回值。实现
系统 2019-09-27 17:46:55 2466