• 首页
        • 更多产品

          客户为中心的产品管理工具

          专业的软件研发项目管理工具

          简单易用的团队知识库管理

          可量化的研发效能度量工具

          测试用例维护与计划执行

          以团队为中心的协作沟通

          研发工作流自动化工具

          账号认证与安全管理工具

          Why PingCode
          为什么选择 PingCode ?

          6000+企业信赖之选,为研发团队降本增效

  • Jira替代方案
目录

python * 和 ** 号传参学名叫什么

python * 和 ** 号传参学名叫字典解包。其操作数必须是映射。添加每个映射项 到新词典。后面的值将替换已由 较早的键/基准对和较早的字典解包。如果给出以逗号分隔的键/基准对序列。

一、python * 和 ** 号传参学名

python * 和 ** 号传参学名叫字典解包。其操作数必须是映射。添加每个映射项 到新词典。后面的值将替换已由 较早的键/基准对和较早的字典解包。如果给出以逗号分隔的键/基准对序列。这意味着 可以在“键/基准”列表中多次指定相同的键,并且 该键的最终字典值将是最后一个给定的值。

*args的使用

def func(*args):

    # 打印参数类型

    print(type(args))

    # 打印参数

    print(args)

func(“a”, “b”, “c”)

func([“a”, “b”, “c”])

# 将一个列表变为元组,需要在传入参数的前面加上一个*

func(*[“a”, “b”, “c”])

<class ‘tuple’>

(‘a’, ‘b’, ‘c’)

<class ‘tuple’>

([‘a’, ‘b’, ‘c’],)

<class ‘tuple’>

(‘a’, ‘b’, ‘c’)

**kwargs的使用

def func(**kwargs):

    # 转为字典

    print(type(kwargs))

    for key, value in kwargs.items():

        print(“{} = {}”.format(key,value))

func(param1=”a”, param2=”b”, param3=”c”)

# 也可以直接传入一个字典

dicts={‘param1’:”a”, ‘param2’:”b”, ‘param3’:”c”}

func(**dicts)

<class ‘dict’>

param1 = a

param2 = b

param3 = c

<class ‘dict’>

param1 = a

param2 = b

param3 = c

延伸阅读:

二、什么是自动机

自动机是有限状态机(FSM)的数学模型。

FSM 是给定符号输入,依据(可表达为一个表格的)转移函数“跳转”过一系列状态的一种机器。在常见的 FSM 的“Mealy”变体中,这个转移函数告诉自动机给定当前状态和当前字符的时候下一个状态是什么。

逐个读取输入中的符号,直到被完全耗尽(把它当作有一个字写在其上的磁带,通过自动机的读磁头来读取它;磁头在磁带上前行移动,一次读一个符号)。一旦输入被耗尽,自动机被称为“停止”了。

依赖自动机停止时的状态,称呼这个自动机要么是“接受”要么“拒绝”这个输入。如果停止于“接受状态”,则自动机“接受”了这个字。在另一方面,如果它停止于“拒绝状态”,则这个字被“拒绝”。自动机接受的所有字的集合被称为“这个自动机接受的语言”。

一站式研发项目管理平台 PingCode

一站式研发项目管理平台 PingCode

支持敏捷\瀑布、知识库、迭代计划&跟踪、需求、缺陷、测试管理,同时满足非研发团队的流程规划、项目管理和在线办公需要。

相关文章

「面向服务的架构(SOA)」优点是什么,可应用于哪些领域

百科

快速做出有界面的程序用什么编程语言

百科

为什么主流GC语言不支持GC和手动管理内存混合使用的方式呢

百科

C 语言中不同类型指针的大小是否完全相同,为什么

百科

缺省和默认有啥区别

百科

面向人类的语言和面向机器的语言到底有什么区别

百科

C#中,私有方法和密封方法的区别是什么

百科

OCaml语言有哪些优势

百科

什么是元编程

百科

编译器怎么处理定义但未使用的函数

百科