Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么没有"?++&引用;Python中的操作?_Python - Fatal编程技术网

为什么没有"?++&引用;Python中的操作?

为什么没有"?++&引用;Python中的操作?,python,Python,可能重复: 这个问题可能看起来很奇怪,但我想知道为什么Python中没有这样的操作。 我知道,x++=1几乎和x++一样简单,但仍然如此。在我熟悉的大多数语言中都有这样的操作(C,C++,爪哇,C,JavaScript,PHP),但是Python中没有。 也许这与这种语言的发展哲学有关?以避免增量前、增量后的混乱,并保持简单 另外,int、long等数据类型也是不可变的。++,--运算符的含义是更改当前数据类型。因此不支持 增量操作之后,python对象本身会发生变化 >>>

可能重复:

这个问题可能看起来很奇怪,但我想知道为什么Python中没有这样的操作。

我知道,
x++=1
几乎和
x++
一样简单,但仍然如此。在我熟悉的大多数语言中都有这样的操作(C,C++,爪哇,C,JavaScript,PHP),但是Python中没有。
也许这与这种语言的发展哲学有关?

以避免增量前、增量后的混乱,并保持简单

另外,
int
long
等数据类型也是不可变的。
++
--
运算符的含义是更改当前数据类型。因此不支持

增量操作之后,python对象本身会发生变化

>>> a = int(10)
>>> b = a
>>> print id(a), id(b)
166744132 166744132
>>> a += 1
>>> print id(a), id(b)
166744120 166744132
>>> print a, b
11 10
重复问题如下,其中包含更多信息:


以避免增量前、增量后的混乱,并保持简单

另外,
int
long
等数据类型也是不可变的。
++
--
运算符的含义是更改当前数据类型。因此不支持

增量操作之后,python对象本身会发生变化

>>> a = int(10)
>>> b = a
>>> print id(a), id(b)
166744132 166744132
>>> a += 1
>>> print id(a), id(b)
166744120 166744132
>>> print a, b
11 10
重复问题如下,其中包含更多信息:


虽然与Python没有直接关系,但请看一下:


简而言之,是的,这是一个语言设计决策。

虽然与Python没有直接关系,但请看一下:


简而言之,是的,这是一个语言设计的决定。

我认为这是因为避免了令人困惑的副作用


在使用++运算符的语言中,一个常见的新手错误是混淆了递增/递减运算符前后的差异(优先级和返回值),Python喜欢消除语言“gotcha”-s

我认为这是因为避免混淆副作用

在使用++运算符的语言中,一个常见的新手错误是混淆了递增/递减运算符前后的差异(优先级和返回值),Python喜欢消除语言“gotcha”-s

quot:

应该有一个——最好只有一个——显而易见的方法来做到这一点

您提到的所有语言都继承了C语言中的运算符,在C语言中,指针算术的广泛使用使得递增和递减操作更加常见。使用速记不会增加Python的表现力,而且除了“C做到了”之外,没有其他理由将其添加到语言中。(这本身并不是一个很有力的理由。)

quot:

应该有一个——最好只有一个——显而易见的方法来做到这一点


您提到的所有语言都继承了C语言中的运算符,在C语言中,指针算术的广泛使用使得递增和递减操作更加常见。使用速记不会增加Python的表现力,而且除了“C做到了”之外,没有其他理由将其添加到语言中。(这本身并不是一个很强的理由。)

这是一个编程语言结构的问题。Python中并不经常需要增量运算符。取而代之的是,使用范围(0,5)中i的语句。

这是编程语言结构的问题。Python中并不经常需要增量运算符。取而代之的是,使用诸如for i in range(0,5)之类的语句。

经常使用“for i in range(0,5):”不是好主意=)它只在您需要数字时才有用。

经常使用“for i in range(0,5):”不是好主意=)它只在你需要数字的时候才有用

不变性不是问题:你没有改变数字
5
!(我似乎记得在一些非常早期的语言中,你实际上可以改变整数本身的值。显然这是一件坏事。)这只是一种设计选择。不可变性不是问题:你没有改变数字
5
!(我似乎记得在一些非常早期的语言中,你实际上可以改变整数本身的值。显然这是一件坏事。)这只是一种设计选择。