在Python中修改对象方法 - Ruby就像'!'

时间:2017-01-26 01:29:15

标签: python ruby

python中是否有一个运算符允许你创建一个你调用的方法,实际修改对象,使它等于它的输出? 基本上我要问的是,如果有类似ruby的感叹号,但是在python中。

ruby​​中的示例(请注意,如果Ruby方法没有参数,则不需要调用括号):

array = [2, 7, 1]
array.sort
  

>> [1,2,7]

array
  

>> [2,7,1]

array.sort!
  

>> [1,2,7]

array
  

>> [1,2,7]

现在,我知道在Python中,或者几乎任何语言(包括Ruby),你都可以这样做:

array = sorted(array)

但我只是想知道是否有预定义的特定方式来实现

1 个答案:

答案 0 :(得分:4)

不,没有。与大多数语言一样,数组中的方法是否发生变异或返回新数组完全取决于语言实现者。

它不是一个操作符,而是更多的命名约定来表示危险或破坏性的方法。它没有以任何方式强制执行,您可以使用尾随!定义您喜欢的任何方法。但是,Ruby在实现明确支持这个正式约定方面有点独特。