相关疑难解决方法(0)

链式作业如何运作?

来自某事的引用:

>>> x = y = somefunction()
Run Code Online (Sandbox Code Playgroud)

是相同的

>>> y = somefunction()
>>> x = y
Run Code Online (Sandbox Code Playgroud)

问题:是

x = y = somefunction()
Run Code Online (Sandbox Code Playgroud)

同样的

x = somefunction()
y = somefunction()
Run Code Online (Sandbox Code Playgroud)

根据我的理解,它们应该是相同的,因为somefunction只能返回一个值.

python python-3.x

29
推荐指数
5
解决办法
9479
查看次数

python中的a = b = c是什么?

我很困惑,连续相等=可以在python中使用:

a = b = c
Run Code Online (Sandbox Code Playgroud)

这个语言功能叫什么?有什么我可以读到的吗?

可以生成4等于?

a = b = c = d
Run Code Online (Sandbox Code Playgroud)

python variables

5
推荐指数
1
解决办法
1万
查看次数

Python实现赋值链的问题

我正在为教育Python库编写一个链表.以下是代码的重要摘要:

class Element(object):
  def __init__(self, value, next):
    self.value = value
    self.next = next

class LinkedList(object):
  def __init__(self):
    self.head = None
    self.tail = None

  def insert_back(self, element):
    if self.empty():
      self.insert_front(element)
    else:
      self.tail.next = Element(element, None)
      self.tail = self.tail.next
      # I'd like to replace the above two lines with this
      # self.tail = self.tail.next = Element(element, None)
Run Code Online (Sandbox Code Playgroud)

我的问题来自最后一行.根据这个问题的最佳答案,Python对链式赋值的独特实现是罪魁祸首.

在其他语言中,最后一行与其上面的两行具有相同的效果,但Python Element(element, None)首先计算表达式,然后从左到右分配结果,因此self.tail在之前分配self.tail.next.这导致前一个tail元素没有引用新的tail元素,而新的tail元素引用自身.

我的问题是:有没有办法用一个语句执行这两个任务?

我完全满足于使用更明确的两行分配; 这只是为了好奇心.

python python-2.7

3
推荐指数
1
解决办法
107
查看次数

Python中链式赋值的状态

有几次我在Python中偶然发现了C风格的赋值a = b = 0.通过勤奋的谷歌搜索,我发现这被称为链式任务:[ 1 ],[ 2 ],[ 3 ].但是,似乎官方文档中未提及此功能.

这是否意味着链式任务仍处于试验阶段,或仅仅是官方文档略微落后于开发?

python

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

多目标分配

我正在读一本关于Python的书,关于多目标任务的书中有一个特殊的部分.现在这本书解释如下:

在此输入图像描述

但我没有看到这个的使用.这对我来说毫无意义.为什么要使用更多变量?有理由这样做吗?是什么让这与使用如此不同:a='spam'然后打印a3次?

我只能想到用它来清空一行中的变量.

python variable-declaration

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