由买买提看人间百态

topics

全部话题 - 话题: kwargs
(共0页)
l*******m
发帖数: 1096
1
I think your distance function was defined in a wrong way. Here is an
example
def test_pyfunc_metric():
def dist_func(x1, x2, p):
return np.sum((x1 - x2) ** p) ** (1. / p)
X = np.random.random((10, 3))
euclidean = DistanceMetric.get_metric("euclidean")
pyfunc = DistanceMetric.get_metric("pyfunc", func=dist_func, p=2)
D1 = euclidean.pairwise(X)
D2 = pyfunc.pairwise(X)
assert_array_almost_equal(D1, D2)
I didn't know it before, just checked source codes for you.
... 阅读全帖
l**n
发帖数: 7272
2
来自主题: Apple版 - Unix的缺陷(ZT)
虽然这里的码工比较少,但是能appreciate coding和programming的朋友也可以看看。
我觉得挺有意思的。
http://blog.sina.com.cn/s/blog_5d90e82f01014k5j.html
我想通过这篇文章解释一下我对 Unix 哲学本质的理解。我虽然指出 Unix 的一个设计
问题,但目的并不是打击人们对 Unix 的兴趣。虽然 Unix 在基础概念上有一个挺严重
的问题,但是经过多年的发展之后,这个问题恐怕已经被各种别的因素所弥补(比如大
量的人力)。但是如果开始正视这个问题,我们也许就可以缓慢的改善系统的结构,从
而使得它用起来更加高效,方便和安全,那又未尝不可。同时也希望这里对 Unix 命令
本质的阐述能帮助人迅速的掌握 Unix,灵活的应用它的潜力,避免它的缺点。
通常所说的“Unix哲学”包括以下三条原则[Mcllroy]:
一个程序只做一件事情,并且把它做好。
程序之间能够协同工作。
程序处理文本流,因为它是一个通用的接口。
这三条原则当中,前两条其实早于 Unix 就已经存在,它们描述的其实是程序设计最... 阅读全帖
d********g
发帖数: 10550
3
来自主题: Linux版 - 请教python问题
这是override constructor,new style的class,super class就是object。没规定一
定要super,如果你不要基类的constructor的话。不光是__init__(),任何method都是
这个道理,要扩展(重用之前的代码)就是super,不super就是直接覆盖
因为object本身是不接收args、kwargs的所以可以这样简写,如果是从别的有可能接受
args的class继承,为了安全一般还得这样写:
class Reader(BaseClass):
def __init__(self, filename=None, *args, **kwargs):
super(Reader, self).__init__(*args, **kwargs)
# 然后再处理你自己的filename
Python 3里可以把super(Reader, self)简化成super()
d********g
发帖数: 10550
4
来自主题: Linux版 - 请教python问题
这是override constructor,new style的class,super class就是object。没规定一
定要super,如果你不要基类的constructor的话。不光是__init__(),任何method都是
这个道理,要扩展(重用之前的代码)就是super,不super就是直接覆盖
因为object本身是不接收args、kwargs的所以可以这样简写,如果是从别的有可能接受
args的class继承,为了安全一般还得这样写:
class Reader(BaseClass):
def __init__(self, filename=None, *args, **kwargs):
super(Reader, self).__init__(*args, **kwargs)
# 然后再处理你自己的filename
Python 3里可以把super(Reader, self)简化成super()
S*******s
发帖数: 13043
5
来自主题: Programming版 - python: how to import a decorator?
I got an error if I want to run test.py:
@singleton
NameError: name 'singleton' is not defined
if I combine the two files, it would be fine.
what is right way to import decorator?
#in module Singleton.py
def singleton(theClass):
""" decorator for a class to make a singleton out of it """
classInstances = {}
def getInstance(*args, **kwargs):
""" creating or just return the one and only class instance.
The singleton depends on the parameters used in __init__ """... 阅读全帖
d********g
发帖数: 10550
6
3.4+主要是asyncio相关。Python 3.4开始内置asyncio,3.3还需要额外装库。3.5加入
async/await语法,3.6更是把async/await推广到其它地方比如generator:
https://docs.python.org/3/whatsnew/3.5.html
https://docs.python.org/3/whatsnew/3.6.html
3.6的dict也重新实现了,性能提升内存占用下降的同时,带来的一个副产品是dict现
在也可以直接当OrderedDict用了,虽然这个特性还没有正式在API上确认
在公司还用Python 2.7很正常,但是自己写新项目还用2.7就是自己给自己挖坑了。这
两个版本我都写,自己的非开源项目反而故意不要语法兼容(比如能用高版本async/
await的就绝对不用低版本兼容的yield),强制跟上3.x的升级,这样以后的维护坑会
更少
别的不说,Python 2.7里经常需要from __future__ import absolute_import,
unicode_literals等,这都是2.x设计缺... 阅读全帖
j****x
发帖数: 943
7
来自主题: Linux版 - python 的 matplotlib 如何?
Its 3d plotting module plot3d still has a long way to go compared with
Maltab. 2d plots are good though. the source code of the matplotlib package
is not well organized
IMHO. the **kwargs sucks.
a****e
发帖数: 9589
8
来自主题: Programming版 - python question
最先想到re,然后是mod(%),range 想的妙(佩服),textwrap 从未接触过(学习
了),其他的从直觉上觉得效率不高,pass了。
写了个测试程序如下:
import timeit
s = "0001001101111111"
def mtimeit(func):
def wrap(*args, **kwargs):
t = timeit.Timer(func)
print func.func_name,
print min(t.repeat(number=1))
return func
return wrap
@mtimeit
def re_func():
import re
return '-'.join(re.findall('\d{4}', s))
@mtimeit
def mod_func():
return ''.join(x if i%4 or i==0 else '-'+x for i,x in enumerate(s))

@mtimeit
de... 阅读全帖
m********5
发帖数: 17667
9
来自主题: Programming版 - python question
因为import, dot操作等消耗的时间远超过其他步骤
所以我觉得有必要修改一下,直接把reptfda用在测试func中
import re
rept=re.compile('\d{4}')
reptfda=rept.findall
为了 eliminate global var lookup overhead 的影响,应该多尝试几次 number=1应
该是不行的。
修改了一下:
def testAthome2(s,niter):
import re
rept=re.compile('\d{4}')
reptfda=rept.findall
def mtimeit(func):
def wrap(*args, **kwargs):
t = timeit.Timer(func)
print func.func_name,
print min(t.repeat(number=niter))
return func
return ... 阅读全帖
(共0页)