有人可以解释一下为什么这个函数返回 None 吗?

问题描述 投票:0回答:1

我一直在试图弄清楚为什么这个函数每次运行时都返回 None,如果有人能解释我的原因,我将非常感激。

x = set([1,2,3])

def inserta(multiconjunto, elemento):
   
   a = multiconjunto.add(elemento)
   
   return a

mc1 = inserta(x, 2)
print(mc1)

python arrays list function set
1个回答
1
投票

它不返回任何内容,因为

set.add()
返回
None
add()
方法修改了集合,它不返回新集合。

没有理由将如此简单的操作放入您自己的函数中,但如果您坚持这样做:

x = set([1,2,3])

def inserta(multiconjunto, elemento):
   multiconjunto.add(elemento)

inserta(x, 2)
print(x)

如果您出于某种原因想退回一套新的,那么:

x = set([1, 2, 3])


def inserta(multiconjunto, elemento):
    new_set = set(multiconjunto)
    new_set.add(elemento)

    return new_set


mc1 = inserta(x, 5)
print(mc1)
print(x)

应该可以解决问题。它输出

{1, 2, 3, 5}
{1, 2, 3}
© www.soinside.com 2019 - 2024. All rights reserved.