手札-7

你好,我是悦创。

if not 的理解:

l = None # 空 False
# not False >>> True
if not l:
    print('ok')
else:
    print('No')
print(not False)

运行结果:

ok
True

把 l 修改成不为空:

l = 1 # 空 False
# not False >>> True
if not l:
    print('ok')
else:
    print('No')
print(not False)
print(not True)

运行结果:

No
True
False

python 中 *args 和 **kwargs 的区别

在 python 中,*args 和 **kwargs 都代表 1个 或 多个 参数的意思。*args 传入tuple 类型的无名参数,而 **kwargs 传入的参数是 dict 类型。下文举例说明。

1.*args 的用法,以下测试代码:
def p(url, *args):
    print(url)
    print(args[0])
p(1, 2, 3, 4)
def test(*args):
    print("test-args", args)
    for i in args:
        print("test-i", i)

test(1,2,3)


def p(a, *args, **kwargs):
    print("p-a", a)
    print("p-*args", *args)
    print("p-**kwargs", **kwargs)

p(1, 2, 3, 4)

运行结果:

test-args (1, 2, 3)
test-i 1
test-i 2
test-i 3
p-a 1
p-*args 2 3 4
p-**kwargs
2.**kwargs 的用法,以下测试代码:
def test(**kwargs):
    print(kwargs)
    keys = kwargs.keys()
    value = kwargs.values()
    print(keys)
    print(value)

test(a=1,b=2,c=3,d=4)

# 输出值分别为
# {'a': 1, 'b': 2, 'c': 3, 'd': 4}
# dict_keys(['a', 'b', 'c', 'd'])
# dict_values([1, 2, 3, 4])
AI悦创·创造不同!
AI悦创 » if not 与 *args 和 **kwargs 的理解

Leave a Reply