Ifanobject'svaluecanbemodified,theobjectissaidtobemutable.Ifthevaluecannotbemodified,theobjectissaidtobeimmutable.mutable可变类型,例如list,set,自定义类型(等价于C#中的引用类型);immutable不可变类型,例如string,numbers等(等价于C#中的值类型);一、引用和拷贝(referencesandcopies)当
系统 2019-09-27 17:54:01 1900
变量不是盒子在示例所示的交互式控制台中,无法使用“变量是盒子”做解释。图说明了在Python中为什么不能使用盒子比喻,而便利贴则指出了变量的正确工作方式。变量a和b引用同一个列表,而不是那个列表的副本>>>a=[1,2,3]>>>b=a>>>a.append(4)>>>b[1,2,3,4]如果把变量想象为盒子,那么无法解释Python中的赋值;应该把变量视作便利贴,这样示例中的行为就好解释了注意:对引用式变量来说,说把变量分配给对象更合理,反过来说就有问题
系统 2019-09-27 17:53:57 1900
非阻塞IO(non-blockingIO)Linux下,可以通过设置socket使其变为non-blocking。当对一个non-blockingsocket执行读操作时,流程是这个样子:从图中可以看出,当用户进程发出read操作时,如果kernel中的数据还没有准备好,那么它并不会block用户进程,而是立刻返回一个error。从用户进程角度讲,它发起一个read操作后,并不需要等待,而是马上就得到了一个结果。用户进程判断结果是一个error时,它就知道
系统 2019-09-27 17:53:07 1900
本文实例讲述了python静态方法。分享给大家供大家参考。具体实现方法如下:复制代码代码如下:staticmethodFoundat:__builtin__staticmethod(function)->methodConvertafunctiontobeastaticmethod.Astaticmethoddoesnotreceiveanimplicitfirstargument.Todeclareastaticmethod,usethisidiom:c
系统 2019-09-27 17:53:03 1900
版权声明:转载请注明作者(独孤尚良dugushangliang)出处:https://blog.csdn.net/dugushangliang/article/details/91970111python2的xrange()函数,被发展成了python3的range()函数,而python2的range()函数则同raw_input()函数一样(详见https://blog.csdn.net/dugushangliang/article/details/8
系统 2019-09-27 17:52:55 1900
功能:为已存在的函数或对象添加额外的功能原则:不改变源代码为其添加功能不改变函数的调用方式方法:装饰器=高阶函数+嵌套函数(高阶函数:一个函数可以作为参数传递给另外一个函数,或者,一个函数的返回值是一个函数,即函数的入口地址)函数名作为参数传递给装饰器(@decorator_name)装饰函数返回函数名(函数地址)注意:默认情况下,装饰器会修改名字和文档说明,但是可以使用functools中的@wraps()解决。@wraps接受一个函数来进行装饰,并加入
系统 2019-09-27 17:51:46 1900
黑客泛指擅长IT技术的人群,简单地说,是对计算机系统和网络的缺陷和漏洞的发现进行攻击。他们有着高超的技术能力,同时身怀多种编程语言,随随便便就能攻击别的网站,进行活动。在黑客中,最受喜欢的就是Python语言。有资料显示,目前GitHub代码库中,有超过20%的网络攻击工具或PoC(概念验证)代码都是采用Python编写的,这表明Python是黑客开发网络攻击工具时的首选。作为一门编程语言,Python在信息安全领域拥有极大的优势,其中很重要的一个原因就是
系统 2019-09-27 17:51:31 1900
如下所示:importlogging#创建一个loggerlogger=logging.getLogger('mylogger')logger.setLevel(logging.DEBUG)#创建一个handler,用于写入日志文件fh=logging.FileHandler('test.log')fh.setLevel(logging.DEBUG)#再创建一个handler,用于输出到控制台ch=logging.StreamHandler()ch.set
系统 2019-09-27 17:51:25 1900
感觉这种理解有问题,举个例子来说。classDog(object):name='dog'definit(self):self.age=18d1=Dog()d2=Dog()这里有两个实例d1,d2吧。d1.name#输出dogd2.name#输出dogd1.name='abc'd1.name#输出abcd2.name#输出dogDog.name#输出dog原因是d1.name输出dog不是因为这个实例共享了类属性,而是因为这个实例没有dog属性,所以pyth
系统 2019-09-27 17:51:12 1900
python2和python3实现在图片上加汉字,最主要的区别还是内部编码方式不一样导致的,在代码上表现为些许的差别。理解了内部编码原理也就不会遇到这些问题了,以下代码是在WIN10系统上时测好用的。Python2在图片上加汉字代码实现#-*-coding:cp936-*-importcv2importnumpyasnpfromPILimportImage,ImageDraw,ImageFontdefID_2_Word(txt):tmp_ID=txt.sp
系统 2019-09-27 17:50:33 1900