分类 Python 下的文章

python中两种调用父类方法的不同


起步

python中有两种方法可以调用父类的方法:super(Child, self).method(args)Parent.method(self, args) 。我用其中的一种报了如下错误:

20161215134941.png

找不到 classobj。当我把调用改为 super(B, self).f(name) 就能正确运行,且结果正确。


django 数据库sqlmigrate


起步

django版本是1.8. 项目也运行上线一段时间了。由于需求的增加不能不增加些表格了。在model.py写上要添加的表格.

class MoyuRegion(models.Model):
    game_region_name = models.CharField(max_length=255, null=True, blank=True, unique=True)
    idc = models.ForeignKey(IDC, null=True, blank=True, on_delete=models.SET_NULL)
    child_game = models.ForeignKey(ChildGame, null=True, blank=True, on_delete=models.SET_NULL)
    def __unicode__(self):
        return self.game_region_name


Python四舍五入round精度缺失问题


说了你可能不信,是内置函数的锅。

起步

round()是python进行四舍五入的函数,然而这里有坑。在我不断排查,万万没想到是内置函数也有错误,在此记个坑。

20160902175619.png

这是在python2.6的环境下,保留小数位数都是错的,一个bug。于是好奇在不同版本下round是怎么工作的


Win10+XGBoost Python包的安装


  鉴于网上教程大多过时而且扯淡,特此记录一下我的安装过程。XGBoost提供R和Python的包,这里介绍Python包的安装。   XGBoost是数据挖掘中用到一个新型的数据分析包,相对其它Boosting模型更加高效。具体请看XGBoost

  想要安装XGBoost首先需要具备以下几个条件:

  1.安装Python(建议2.7)并设置好环境变量   2.安装numpy和scipy包(或者直接用Python科学计算的集成环境Anaconda)   3.下载mingw-w64,并解压到C盘根目录(路径不含中文即可),将其bin目录位置添加到系统环境变量path之后(如 C:\mingw64\bin),并将bin目录下 mingw32-make.exe改名为make.exe,便于后面调用。   4.安装好Git,推荐Git

  然后就可以开始安装XGBoost了。

  1.打开 Git Bash 并选择一个下载位置

  2.依次执行 git clone --recursive https://github.com/dmlc/xgboost

cd xgboost

git submodule init

git submodule update

  注:git submodule 用于更新公共资源

  3.执行 cp make/mingw64.mk config.mk (如果不用Bash会报错)

  执行 make -j4 大约编译10分钟

  4. 进入文件夹 cd python-package

  执行 python setup.py install

  结束之后使用import xgboost验证,不报错即可。