python - 已收到 2 个值,一个数字和一个无

标签 python python-3.x

我使用 2 个代码。我希望程序 1 从程序 2 接收值。

文件 1:

from OpenUSB import transmitter

def valuepullup():
    newval = transmitter()
    print(newval)


valuepullup()

文件 2:

def transmitter():
    print (2)

我得到的结果是:

2
None

我很乐意使用刚刚发送过来的值。由于目前的情况,None 破坏了它。 有没有办法阻止 none 与 2 一起出现。

提前致谢

最佳答案

这里你有两个选择,要么简单地在你的 transmitter 函数中使用 return 而不是 print,或者只调用你的 transmitter 而不调用 print。这里发生的是,你们都在打印函数的 return,它是 None(因为没有指定 return,将返回 None默认情况下),以及函数内部的 print

观察:

>>> def transmitter():
...     print (2)
...
>>>
>>>
>>> transmitter()
2
>>> print(transmitter())
2
None
>>>

更接近您的示例,看看当您将 transmitter 分配给一个值时会发生什么:

>>> newval = transmitter()
2
>>> print(newval)
None
>>>

所以,关于你的代码,你应该这样做

def transmitter():
    return 2

这实际上使 valuepullup 中的代码更有意义。您希望将 2 实际存储在 newval 中。所以,您应该从您的transmitter 函数中返回2,这样newval 实际上就包含2 现在。在您的代码中,它包含 None,因为它将保留 transmitter 的返回值。正如所解释的那样,它是 None。所以,您的代码现在是:

from OpenUSB import transmitter

def valuepullup():
    newval = transmitter()
    print(newval)

def transmitter():
    return 2

valuepullup()

现在,当您打印 newval 时,它实际上是 2。

关于python - 已收到 2 个值,一个数字和一个无,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45121791/

相关文章:

Python positive-lookbehind 拆分可变宽度

python - 字符串(到二进制)到 python 中的 int?

python - 为什么我的 CNN 的准确性不可重现?

python - 如果子进程结束处理则运行代码

python-3.x - 如何在 map 函数中使用 await

python - (ArcGIS) 为 Arcpy 创建新函数

python - 获取矩阵(列表列表)的反对角线之和时出现 IndexError

python - 具有独特字段的 Django UpdateView

python - 计算三个矩阵的最大值和最小值

python-3.x - 使用 debugpy 和 vs 代码在 docker 容器中调试 python 导致超时/连接被拒绝