相关疑难解决方法(0)

你可以在Python中的核心类型上修补补丁方法吗?

Ruby可以向Number类和其他核心类型添加方法以获得如下效果:

1.should_equal(1)
Run Code Online (Sandbox Code Playgroud)

但似乎Python无法做到这一点.这是真的?如果是这样,为什么?是否与类型无法修改的事实有关?

更新:我不想谈论猴子修补的不同定义,而是只关注上面的例子.我已经得出结论,由于你们中的一些人已经回答,所以无法做到.但我想更详细地解释为什么不能这样做,也许如果Python中有什么功能可以允许这样做.

回答你们中的一些人:我可能想要这样做的原因只是美学/可读性.

 item.price.should_equal(19.99)
Run Code Online (Sandbox Code Playgroud)

这更像是英语,并清楚地表明哪个是测试值,哪个是预期值,如下所示:

should_equal(item.price, 19.99)
Run Code Online (Sandbox Code Playgroud)

这个概念就是Rspec和其他一些Ruby框架所基于的.

ruby python programming-languages fluent-interface monkeypatching

49
推荐指数
6
解决办法
2万
查看次数

实现自定义字符串方法

如何将自定义方法添加到内置python数据类型?例如,我想从这个问题实现一个解决方案,但能够按如下方式调用它:

>>> s = "A   string  with extra   whitespace"
>>> print s.strip_inner()
>>> A string with extra whitespace
Run Code Online (Sandbox Code Playgroud)

那么我该如何定义自定义.strip_inner()字符串方法呢?

python

8
推荐指数
1
解决办法
2128
查看次数

python向内置类型添加新方法

我如何编写可附加到字符串(或其他对象)的python函数?

例如:

"FOO".lower()
Run Code Online (Sandbox Code Playgroud)

他们如何收到投入?他们是发电机吗?

我会高兴地读到它,但我真的不知道我在寻找什么.

python function chaining

2
推荐指数
1
解决办法
1682
查看次数