在Python中,是支持可变长参数,甚至词典参数的,具体见 《Python中函数的参数传递与可变长参数》
而使用词典参数的方式,可以让我们节省很多不必要的初始化工作。
以初始化MySQL的conn为例:
Before:
# App Config
DB_HOST = "localhost"
DB_PORT = 3306
DB_NAME = "db"
DB_USER = "coder4"
DB_PASS = "password"
# Init conn
sel[......]
在Python中,是支持可变长参数,甚至词典参数的,具体见 《Python中函数的参数传递与可变长参数》
而使用词典参数的方式,可以让我们节省很多不必要的初始化工作。
以初始化MySQL的conn为例:
Before:
# App Config
DB_HOST = "localhost"
DB_PORT = 3306
DB_NAME = "db"
DB_USER = "coder4"
DB_PASS = "password"
# Init conn
sel[......]
selenium是一套用于测试WebUI的自动化测试框架,它通过调用Chrome、Firefox来完成动态页面(含Javascript)的加载,因此也可以用来完成动态网页抓取。
1、下载selenium
wget http://selenium-release.storage.googleapis.com/2.44/selenium-server-standalone-2.44.0.jar
2、启动selenium-standalone
java -jar ./selenium-se[......]
在C++的容器中,我们可以边迭代边删除,如下:
std::list<int>::iterator itr = list.begin();
while(itr != list.end();) {
if(condition)
itr = list.erase(itr);
else ++itr;
}
但是,有时候,我们希望使用reverse_iterator也做这个工作:边迭代、边删除:
这个有有点麻烦了,首先要都用rbegin、rend。。其次[......]
Scrapy是一个非常好的抓取框架,它不仅提供了一些开箱可用的基础组建,还能够根据自己的需求,进行强大的自定义。本文对基本用法和常见问题做一个记录。
1、安装
Scrapy虽然是python的模块,但是依赖包比较多,所以我推荐使用apt安装:
sudo apt-get install python-scrapy
编译狂人 或者 处女座 可以从Pypi上下载自行编译安装。友情提示下:pip或者ezsetup上的自动依赖是不全的,需要自己再补其他包。
本文所用的版本是当前最新版[......]
1.Python中也有像C++一样的默认缺省函数
def foo(text,num=0):
print text,num
foo("asd") #asd 0
foo("def",100) #def 100
定义有默认参数的函数时,这些默认值参数位置必须都在非默认值参数后面。
调用时提供默认值参数值时,使用提供的值,否则使用默认值。
2.Python可以根据参数名传参数
def foo(ip,port)[......]