Skip to content

Latest commit

 

History

History
93 lines (69 loc) · 2.23 KB

234-554891-[专业选修]纯位置_position_only_形参_formal_parameter.sy.md

File metadata and controls

93 lines (69 loc) · 2.23 KB
show version enable_checker
step
1.0
true

类型提示(type hint)

回忆

  • 上次研究了形(formal)参(parameter)的分类
  • 分三种
    • 纯位置形参
    • 纯关键字形参
    • 既可位置又可关键字形参
  • 我们用到的都是第三种
  • 真的可以有纯位置的形参么?

图片描述

查看文档

图片描述

  • /之前的是纯位置的
  • /、*之间的是两可的(位置、关键字都可以)
  • *之后的是纯关键字的

修改代码

图片描述

  • 结果

图片描述

  • 3 个参数
    • 1 个 positiononly
    • 2 个 既可以position也可以keyword
  • 如果我要用keyword形式给sub呢?

纯position必须纯

import sys
def sentence(sub: str="I",\
             /,\
             pre: str = "love",\
             obj: str = "you"):
    """
    a sentence is composed by 3 parts,
    sub is abbreviation as subject
    pre is abbreviation as predicate
    obj is abbreviation as object
    """
    frame = sys._getframe()
    code = frame.f_code
    print("co_argcount:",code.co_argcount)
    print("co_posonlyargcount:",code.co_posonlyargcount)
    print("co_kwonlyargcount:",code.co_kwonlyargcount)
    print(sub, pre, obj)

sentence(sub="oeasy")

图片描述

  • sub声明了是纯position
  • 不能用keyword来调用他

后面呢?

图片描述

图片描述

  • 后面都是两可得
    • 既可以是position
    • 也可以是keyword
    • 不only

总结

  • 我们这次研究了纯位置(position)参数(parameter)
    • 纯位置参数在/之前
    • 纯位置参数只能用位置
    • 不能用关键字(keyword)
  • 那和纯位置相对的
  • 纯关键字(keyword only)
  • 如何理解呢🤔

图片描述

  • 我们下次再说👋