Python

轻松理解Python 中的 descriptor

定义通常,一个descriptor是具有“绑定行为”的对象属性。所绑定行为可通过descriptor协议被自定义的__get__(),__set__()和__delete__()方法重写。如果一个对象的上述三个方法任意一个被重写,则就可被称为descriptor。属性的默认操作是从对象字典中获取、设置和删除一个属性。例如,a.x有一个查找链,先a.__dict__['x'],若没有则type(a).__dict__['x'],若没有增往上查找父类直到元类。

系统 2019-09-27 17:53:41 1975

Python

python爬取全国公交线路---bs4方法

这里主要讲了bs4解析方法和json方法,以8684网页为例子,爬取了全国公交线路importrequestsimporttimefrombs4importBeautifulSoupimportjsonfromxpinyinimportPinyinheaders={'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/76.0.

系统 2019-09-27 17:53:12 1975

Python

Python中eval带来的潜在风险代码分析

0x00前言eval是Python用于执行python表达式的一个内置函数,使用eval,可以很方便的将字符串动态执行。比如下列代码:>>>eval("1+2")>>>eval("[xforxinrange(10)]")[0,1,2,3,4,5,6,7,8,9]当内存中的内置模块含有os的话,eval同样可以做到命令执行:>>>importos>>>eval("os.system('whoami')")win-20140812chj\administrat

系统 2019-09-27 17:53:02 1975

Python

Python--实现二叉树的遍历操作

一、首先二叉树的定义:classTreeNode:def__init__(self,x):self.val=xself.left=Noneself.right=None构建一棵二叉树:classNode(object):def__init__(self,val):self.val=valself.lchild=Noneself.rchild=NoneclassTree(object):def__init__(self):self.root=Noneself

系统 2019-09-27 17:52:24 1975

Python

Python中实现结构相似的函数调用方法

python的dict用起来很方便,可以自定义key值,并通过下标访问,示例如下:复制代码代码如下:>>>d={'key1':'value1',...'key2':'value2',...'key3':'value3'}>>>printd['key2']value2>>>lambda表达式也是很实用的东东,示例如下:复制代码代码如下:>>>f=lambdax:x**2>>>printf(2)4>>>两者结合可以实现结构相似的函数调用,使用起来很方便,示例如

系统 2019-09-27 17:51:38 1975

Python

10种经典机器学习算法——Python版

klearnpythonAPILinearRegressionfromsklearn.linear_modelimportLinearRegression#线性回归#module=LinearRegression()module.fit(x,y)module.score(x,y)module.predict(test)LogisticRegressionfromsklearn.linear_modelimportLogisticRegression#逻辑回

系统 2019-09-27 17:51:04 1975

Python

浅谈Python程序与C++程序的联合使用

作为Python程序员,应该能够正视Python的优点与缺点。众所周之,Python的运行速度是很慢的,特别是大数据量的运算时,Python会慢得让人难以忍受。对于这种情况,“专业”的解决方案是用上numpy或者opencl。不过有时候为了一点小功能用上这种重型的解决方案很不划算,或者有时候想要实现的操作在numpy里面没有,需要我们自己用C语言来编写。总之,我们使用Python与C++的混合编程能够加快程序热点的运算速度。首先要提醒大家注意的是,在考虑联

系统 2019-09-27 17:50:46 1975

Python

python监控nginx端口和进程状态

本文实例为大家分享了python监控nginx端口和进程状态的具体代码,供大家参考,具体内容如下#!/usr/local/bin/python#coding:utf-8importpsutilimportsysimportos#获取主机名称defhostname():sys=os.nameifsys=='nt':hostname=os.getenv('computername')returnhostnameelifsys=='posix':host=os.

系统 2019-09-27 17:50:28 1975

Python

python爬虫第11关 协程

协程是什么我们已经做过不少爬虫项目,不过我们爬取的数据都不算太大,如果我们想要爬取的是成千上万条的数据,那么就会遇到一个问题:因为程序是一行一行依次执行的缘故,要等待很久,我们才能拿到想要的数据。既然一个爬虫爬取大量数据要爬很久,那我们能不能让多个爬虫一起爬取?这样无疑能提高爬取的效率,就像一个人干不完的活儿,组个团队一起干,活一下被干完了。这是一个很好的思路——让多个爬虫帮我们干活。但具体怎么用Python实现这事呢?我们可以先别急着想怎么实现这件事,后

系统 2019-09-27 17:50:16 1975

Python

php调用python服务

php调用python服务侃侃:公司用的php的popen以命令的形式调用python,首先说说这样做的缺点。php执行命令行调用python的缺点popen('pythontest.py[参数]','r');缺点一:windows默认的是gbk编码,当php中传utf-8中文参数的时候,python接收到的参数会有问题。当然,这是有解决的办法的,就是windows下转换一下字符的编码,linux不用转换。再来python接收参数的时候肯定也要转换编码了,

系统 2019-09-27 17:50:10 1975

Python

Python with用法实例

python中with可以明显改进代码友好度,比如:复制代码代码如下:withopen('a.txt')asf:printf.readlines()为了我们自己的类也可以使用with,只要给这个类增加两个函数__enter__,__exit__即可:复制代码代码如下:>>>classA:def__enter__(self):print'inenter'def__exit__(self,e_t,e_v,t_b):print'inexit'>>>withA()

系统 2019-09-27 17:49:50 1975

Python

Python实现微信中找回好友、群聊用户撤回的消息功能示例

本文实例讲述了Python实现微信中找回好友、群聊用户撤回的消息功能。分享给大家供大家参考,具体如下:还在好奇好友撤回了什么消息吗?群里撤回了什么消息?下面的代码实现了:即使群、好友撤回了文本消息、表情、图片等消息,自己也能知道撤回的什么。#coding=utf-8importitchatfromitchat.contentimportTEXTfromitchat.contentimport*importsysimporttimeimportreimpor

系统 2019-09-27 17:49:48 1975

Python

Python—Web服务器(Apache)

Apache配置文件:httpd.conf文件#指定Apache的安装路径,此选项参数值在安装Apache时系统会自动把Apache的路径写入。ServerRoot"/www/server/apache"#Listen主要侦听web服务端口状态,默认为:80,即侦听所有的地址的80端口,注意这里也可以写成IP地址的侦听形式,不写即默认的地址:0.0.0.0Listen106.15.88.162:80Listen80#指定Apache运行用户配置Userww

系统 2019-09-27 17:49:45 1975

Python

猜数字游戏_Python

预先设置数字变量age_of_test=25#这里设置为25,也可随意guess_age=int(input("guessage:"))ifguess_age==age_of_test:print("Yes,yougotit!")#判断正确后打印Yes,yougotit!并继续执行命令elifguess_age>age_of_test:print("thinksmaller...")#判断数字小于预定值时提示!else:print("thinkbigger

系统 2019-09-27 17:49:37 1975

Python

Python的Django框架使用入门指引

前言传统Web开发方式常常需要编写繁琐乏味的重复性代码,不仅页面表现与逻辑实现的代码混杂在一起,而且代码编写效率不高。对于开发者来说,选择一个功能强大并且操作简洁的开发框架来辅助完成繁杂的编码工作,将会对开发效率的提升起到很大帮助。幸运的是,这样的开发框架并不少见,需要做的仅是从中选出恰恰为开发者量身打造的那款Web框架。自从基于MVC分层结构的Web设计理念普及以来,选择适合的开发框架无疑是项目成功的关键性因素。无论是Struts、Spring或是其他W

系统 2019-09-27 17:49:32 1975