Python
文章平均质量分 68
Megustas_JJC
change the world by program
展开
-
Python中函数默认值问题
如果使用的参数默认值是可变的(例如列表),则可能引发烦人的问题。当执行def时,默认参数值只能使用一次,在函数调用期间将保留此关联。这意味着参数名相关联的默认对象的变化,将在函数调用间保持一致。如下例子:def func(element,listParam=[]) listParam.append(element) return listParam调用:>>>func(1)[1]原创 2017-11-28 16:34:08 · 985 阅读 · 0 评论 -
I/O多路复用及select函数解析及实例
概述在进行解释之前,首先要说明几个概念: - 用户空间和内核空间 - 进程切换 - 进程的阻塞 - 文件描述符 - 缓存 I/O用户空间与内核空间现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方)。操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证用户进程不能原创 2018-01-23 22:19:19 · 762 阅读 · 0 评论 -
Python 多线程
Python中的多线程与Java,C++中的思想是比较接近的,作用也一样:使用线程可以把占据长时间的程序中的任务放到后台去处理。用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度程序的运行速度可能加快在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,线程就比较有用了。在这种情况下我们可以释放一些珍贵的资源如内存占用等等。原创 2018-01-15 22:09:34 · 648 阅读 · 0 评论 -
Python网络编程——socket编程
Python 提供了两个级别访问的网络服务。: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的全部方法。 高级别的网络服务模块 SocketServer, 它提供了服务器中心类,可以简化网络服务器的开发。什么是 Socket? Socket又称”套接字”,应用程序通常通过”套接字”向网络发出请求或者应答网络原创 2018-01-04 22:25:20 · 452 阅读 · 0 评论 -
[Errno 48] Address already in use 解决方法
在进行socket编程时,我们在运行server端代码的时候遇到了如下的问题: 显示地址已经被占用,那么我们如何解决这个问题?首先我们看一下server端的代码:s = socket.socket()host = socket.gethostname()port = 12345s.bind((host,port))s.listen(5)Use lsof -i :5000原创 2018-01-10 19:24:05 · 22158 阅读 · 0 评论 -
Mac下MySQL-python安装及EnvironmentError: mysql_config not found的解决办法及pip指令
(写在前面,作为小白,网上各种安装攻略和错误解决办法真是给我弄懵了,很多有问题并且有的解决办法也是行不通的。。。。最后解决之后,发现这个环境的安装其实是个很简单的事。。。)(1)首先需要进行Python的安装 (2)进行mysql的安装,多种方式,偷懒一些可以直接使用brew指令brew install mysql(3)mysql_config not found的造成原因就是因原创 2018-01-02 21:21:09 · 1837 阅读 · 0 评论 -
Python GIL(Global Interpreter Lock,全局解释器锁)
常听到GIL这个词,并且发现这个词经常和Python无法高效的实现多线程划上等号。本着不光要知其然,还要知其所以然的研究态度,博主搜集了各方面的资料,花了一周内几个小时的闲暇时间深入理解了下GIL,并归纳成此文,也希望读者能通过次本文更好且客观的理解GIL。GIL是什么首先需要明确的一点是GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念。就好转载 2018-01-19 20:00:42 · 1262 阅读 · 0 评论 -
浅谈Python和Java的多进程与多线程的异同
最近在学习Python多线程相关的部分,遇到了这样的一句话:“对于任何Python程序,不管有多少的处理器,任何时候都总是只有一个线程在执行”,即Python中的多线程是“假的多线程”,是什么原因造成这样的说法,搜集查阅了一些资料,并且对比Java,如下是个人对于这个问题的一些理解:解释型语言编译性语言例如c语言:用c语言开发了程序后,需要通过编译器把程序编译成机器语言(即计算机识别的二进原创 2018-01-20 20:00:04 · 9050 阅读 · 6 评论 -
virtualenv的使用
在进行python的时候,如果我们要同时开发多个应用程序,那这些应用程序都会共用一个Python,就是安装在系统的Python。如果应用A需要2.7版本,而应用B需要2.6版本怎么办?这种情况下,每个应用可能需要各自拥有一套“独立”的Python运行环境。virtualenv就是用来为一个应用创建一套“隔离”的Python运行环境。virtualenv 为每个不同项目提供一份 Python 安...原创 2018-03-08 20:18:27 · 386 阅读 · 0 评论 -
Python中的类
学习过其他面向对象语言的人,对于学习类这个概念,相信是很容易理解的,如下通过一些代码,将Python的类的一些特性展现出来类及抽象类# -*- coding: utf-8 -*-# Python抽象类的基本模板from abc import ABCMeta, abstractmethod# 定义抽象类,继承objectclass People(object): # 定义为抽象类原创 2017-12-28 22:02:55 · 247 阅读 · 0 评论 -
Python之继承与多态
本文对现有的一些资料及博客进行了一些整合并加上一些自己的理解,通过一些简单有代表性的例子来解释Python的继承和多态,相信有其他面向对象基础的同学能够很快理解掌握。Python 类的继承 在OOP(Object Oriented Programming)程序设计中,当我们定义一个class的时候,可以从某个现有的class 继承,新的class称为子类(Subclass),而被继承的clas原创 2017-12-17 22:07:04 · 3048 阅读 · 0 评论 -
PyCharm中Unhandled exception in thread started by Error in sys.excepthook问题解决
#-*-coding: utf-8 -*-import threadimport time#定义线程函数def print_time(threadName,delay): count = 0 while count5: time.sleep(delay) count += 1 print "%s: %s" % (threadN原创 2018-01-12 20:14:07 · 2826 阅读 · 0 评论 -
Python“传值”或是“引用”?
个人认为,关于Python采用哪一种方式的最好的答案是Python传递的是对象引用。在Python中一切皆对象,所以每个值的传递都是对象的引用。对象在这个过程中是不可复制的,Python传递的是对象引用。如果对象是可变的,在函数中所做的更改将反映在对象的外部作用域中。如果对象是不可变的,当更新引用时将引用新的对象。 例如经常容易犯的一个错误: 如果a=b的话, a和b的地址是相同的;如果只是想拷原创 2017-11-28 17:15:01 · 529 阅读 · 2 评论 -
Python异常和异常处理
Python中的异常处理与Java中的做法思路类似,个别细节的地方需要注意下即可,理解起来没有太大问题try-except块及finally异常常用小技巧: (1)在类型转换的地方检查类型转换是否正确while True: try: valueStr = raw_input("Input integer:") valueInt = int(valueStr)原创 2017-12-20 22:17:08 · 699 阅读 · 0 评论 -
Python命名空间——locals()函数和globals()函数及局部赋值规则
Python使用叫做命名空间的东西来记录变量的轨迹。命名空间只是一个 字典,它的键字就是变量名,字典的值就是那些变量的值。实际上,命名空间可以象Python的字典一样进行访问,一会我们就会看到。在一个Python程序中的任何一个地方,都存在几个可用的命名空间。每个函数都有着自已的命名空间,叫做局部命名空间,它记录了函数的变量,包括 函数的参数和局部定义的变量。每个模块拥有它自已的命名空间,叫做全局命原创 2017-12-05 21:49:29 · 1856 阅读 · 0 评论 -
Python用于文本分析的一个demo—统计文档中只出现一次的字符
学习Python也有一周的时间,将学到的内容通过一个文本处理的小程序进行总结,需求如下:分析文件长度,按单词计数追踪文件中只出现一次的不同单词文本采用1863年林肯先生的《葛底斯堡演说》为例。def makeWordList(gFile): speech = [] for lineString in gFile: lineList = lineString.sp原创 2017-11-26 22:12:21 · 982 阅读 · 0 评论 -
Pycharm中Directory与Package区别及如何导入module
Directory: Dictionary在pycharm中就是一个文件夹,放置资源文件,对应于在进行JavaWeb开发时用于放置css/js文件的目录,或者说在进行物体识别时,用来存储背景图像的文件夹。该文件夹其中并不包含_ _ init.py_ _文件Package(Python中将一个.py文件看作一个module): 对于Python package 文件夹而言,与Dictionary不翻译 2017-12-22 20:35:28 · 3980 阅读 · 1 评论 -
Python文件(File)及读写操作及生成器yield
Python文件读写机制open函数在内存中创建缓存区,将磁盘上的内容复制到此处。文件内容读入到文件对象缓冲区后,文件对象将缓冲区视为非常大的列表,其中每个元素都有一个索引。文件对象按字节(大约每个字符)来对文件对象缓冲区索引计数。许多文件方法隐式使用当前文件位置。例如,调用readline方法后,当前文件位置移动到下一个回车处。write方法在当前文件位置写入。Python方法用于当前位置文件:原创 2017-12-08 22:07:44 · 4430 阅读 · 0 评论 -
Python学习笔记摘要(一)类型 字符串 函数 列表 深浅拷贝
python中的对象和类型 在python中,认为系统中的每一个“东西”都是一个对象,在python中,“对象”有着特殊的意义,python中的对象有: 一个标识 一些属性 零个或多个名称 当python创建对象时,它接收到一个标识号,可以使用id函数,查找它的ID号,python用这个数字将一个对象和其他对象区分开。除了ID号,对象还有一个或者多个名字,名字不是对象ID的一部分,使用名字原创 2017-11-26 22:21:31 · 363 阅读 · 0 评论 -
Python之函数小结
(1)函数参数# -*- coding: utf-8 -*-#函数式编程,def Fun(arg,*args,**kargs) 默认参数arg,可变参数args,kargs#当传入的参数个数不定时,可以使用*,python会将传入的参数自动包装成一个列表再传入进函数def show1(*arg): for item in arg: print item...原创 2017-12-27 19:43:04 · 427 阅读 · 0 评论 -
Flask扩展之Flask-Script
原创 2018-05-09 22:52:00 · 757 阅读 · 0 评论