- 军军小站|张军博客
搜索到与相关的文章
Python

Python面向对象编程——绑定方法与非绑定方法

Python面向对象编程——绑定方法与非绑定方法一、类中定义的函数分成两大类1、绑定方法(绑定给谁,谁来调用就自动将它本身当作第一个参数传入1)绑定到类的方法:用classmethod装饰器装饰的方法。为类量身定制类.boud_method(),自动将类当作第一个参数传入(其实对象也可调用,但仍将类当作第一个参数传入)2)绑定到对象的方法:没有被任何装饰器装饰的方法。为对象量身定制对象.boud_method(),自动将对象当作第一个参数传入(属于类的函数

系统 2019-09-27 17:53:30 1893

Python

python动态添加属性

classA:def__init__(self,info={}):self.info=infodef__getattr__(self,item):returnself.info[item]a=A()a.age=123print(a.age)a.name=123print(a.name)a.xis=123print(a.xis)print(a.__dict__)

系统 2019-09-27 17:53:25 1893

Python

解决Python2.7的UnicodeEncodeError: ‘ascii

python默认环境一般是ascii编码方式,因此Python自然调用ascii编码解码程序去处理字符流,当字符流不属于ascii范围内,就会抛出异常(ordinalnotinrange(128))。参考可通过如下方式查看默认环境编码方式:importsysprintsys.getdefaultencoding()问题解决有两种方式:1、修改默认环境编码方式为utf-8importsysreload(sys)#不加这个会报”找不到setdefaultenc

系统 2019-09-27 17:52:42 1893

Python

如何编写快速且线程安全的Python代码

概述如今我也是使用Python写代码好多年了,但是我却很少关心GIL的内部机制,导致在写Python多线程程序的时候。今天我们就来看看CPython的源代码,探索一下GIL的源码,了解为什么Python里要存在这个GIL,过程中我会给出一些示例来帮助大家更好的理解GIL。GIL概览有如下代码:staticPyThread_type_lockinterpreter_lock=0;/*ThisistheGIL*/这行代码位于Python2.7源码ceval.c

系统 2019-09-27 17:52:39 1893

Python

Python中使用socket发送HTTP请求数据接收不完整问题解决方法

由于工作的需求,需要用python做一个类似网络爬虫的采集器。虽然Python的urllib模块提供更加方便简洁操作,但是涉及到一些底层的需求,如手动设定User-Agent,Referer等,所以选择了直接用socket进行设计。当然,这样的话,需要对HTTP协议比较熟悉,HTTP协议这里就不做讲解了。整个python的代码如下:#!/usr/binenvpythonimportsockethost="www.baidu.com"se=socket.so

系统 2019-09-27 17:52:30 1893

Python

简述Python2与Python3的不同点

在Python2和Python3中都提供print()方法来打印信息,但两个版本间的print稍微有差异主要体现在以下几个方面:1.python3中print是一个内置函数,有多个参数,而python2中print是一个语法结构;2.Python2打印时可以不加括号:print'helloworld',Python3则需要加括号print("helloworld")3.Python2中,input要求输入的字符串必须要加引号,为了避免读取非字符串类型发生的

系统 2019-09-27 17:52:30 1893

Python

Python 元组操作总结

Python的元组和列表类似,不同之处在于元组中的元素不能修改(因此元组又称为只读列表),且元组使用小括号而列表使用中括号,如下:tup1=('physics','chemistry',1997,2000)tup2=(1,2,3,4,5,6)特别注意:1、元组中只包含一个元素时,需要在元素后面添加逗号来消除歧义tup1=(50,)2、元组中的元素值使不允许修改的,但可以对元组进行连接组合tup1=(12,34.56)tup2=('abc','xyz')tu

系统 2019-09-27 17:52:18 1893

Python

Python 装饰器实现DRY(不重复代码)原则

Python装饰器是一个消除冗余的强大工具。随着将功能模块化为大小合适的方法,即使是最复杂的工作流,装饰器也能使它变成简洁的功能。例如让我们看看Djangoweb框架,该框架处理请求的方法接收一个方法对象,返回一个响应对象:defhandle_request(request):returnHttpResponse("Hello,World")我最近遇到一个案例,需要编写几个满足下述条件的api方法:返回json响应如果是GET请求,那么返回错误码做为一个注

系统 2019-09-27 17:52:01 1893

Python

Python3快速入门(十五)——Pandas数据处理

Python3快速入门(十五)——Pandas数据处理一、函数应用1、函数应用简介如果要将自定义函数或其它库函数应用于Pandas对象,有三种使用方式。pipe()将函数用于表格,apply()将函数用于行或列,applymap()将函数用于元素。2、表格函数应用可以通过将函数对象和参数作为pipe函数的参数来执行自定义操作,会对整个DataFrame执行操作。#-*-coding=utf-8-*-importpandasaspdimportnumpyas

系统 2019-09-27 17:52:01 1893

Python

第十五章、Python多线程同步锁,死锁和递归锁

目录第十五章、Python多线程同步锁,死锁和递归锁1.引子:2.同步锁3.死锁引子:4.递归锁RLock原理:不多说,放代码总结:5.大总结第十五章、Python多线程同步锁,死锁和递归锁1.引子:1.创建线程对象t1=threading.Thread(target=say,args=('tony',))2.启动线程t1.start()后面又说了两个点就是join和守护线程的概念​以上就是python多线程的基本使用​说明:前面说的两个功能是相互独立的,

系统 2019-09-27 17:51:52 1893