当前位置: 首页 > news >正文

大理网站建设沛宣网站建设与维护本科教材

大理网站建设沛宣,网站建设与维护本科教材,豆瓣网站是怎么建设的,企业数字化管理目录 Python参数种类 Python参数定义 不定参数接收 限定传入参数方式 具体示例 位置参数示例 关键词参数示例 两种方法都支持的形式 参数默认值#xff08;可选参数#xff09; 参数默认值定义 引用类型默认值异常行为 参数类型声明 参数类型定义申明 函数返回值…目录 Python参数种类 Python参数定义 不定参数接收 限定传入参数方式 具体示例 位置参数示例 关键词参数示例 两种方法都支持的形式 参数默认值可选参数 参数默认值定义 引用类型默认值异常行为 参数类型声明 参数类型定义申明 函数返回值类型声明 参数与装饰器 Python参数种类 总体来看Python支持两种类型的方法参数其类型分别为 位置参数Positional Parameters关键词参数Keyword Parameters 然后我们看下参数的传递形式假如有如下函数定义 def f(a,b,c):...如果我们通过如下方式调用则称为位置参数 f(1,2,3) # 这里的 1,2,3 分别对应位置 a,b,c ,故这里是位置参数 args[1,2,3] f(*args)如果我们通过如下方式调用则称为关键词参数。这种方式下我们不用关心参数位置而是使用显示指定的方式指定每个参数的值相比之下这种方式更明确每个参数的值。 f(b2,c3,a1) # 或者 kwargs {b:2,c:3,a:1} f(**kwargs)⚠️当我们在给定参数时候关键词参数后不可跟位置参数即如下调用方式是错误的 f(2,b3,1) SyntaxError: positional argument follows keyword argumentPython参数定义 不定参数接收 最常见的形式 def f(*args,**kwargs):...其中args用于接收位置参数即args类型是列表kwargs用于接收keyword参数即kwargs是一个字典。 限定传入参数方式 从官方给的这个示例说起 def f(pos1, pos2, /, pos_or_kwd, *, kwd1, kwd2):----------- ---------- ----------| | || 位置参数/关键词参数 || - 只能关键词参数-- 只能是位置参数根据上述示例不难看出在方法定义的时候我们可以通过特定的两个符号/和*将参数分开。即/前面的只能是未知参数/与* 之间的参数即可使位置参数也可以是关键词参数*后面的参数必须是关键词参数。 考虑到不定参数同时存在的情况支持如下定义形式 def f(a,/,b,c,*args,**kwargs):... # 或 def f(a,/,b,c,*args):... # 或 def f(a,/,b,c,**kwargs):... # 或 ef f(a,/,b,c,*,d,**kwargs):...具体示例 位置参数示例 方法定义 def f(pos1,pos2,/):...正确调用方式 f(1,2)错误调用方式及其报错 f(1,pos22) TypeError: f() got some positional-only arguments passed as keyword arguments: pos2f(pos11,pos22) TypeError: f() got some positional-only arguments passed as keyword arguments: pos1, pos2关键词参数示例 方法定义 def f(*,pos1,pos2):...正确调用方式 f(pos11,pos22)错误调用方式及其异常 f(1,2) TypeError: f() takes 0 positional arguments but 2 were givenf(1,pos22) TypeError: f() takes 0 positional arguments but 1 positional argument (and 1 keyword-only argument) were given两种方法都支持的形式 方法定义 def f(a,/,pos1,pos2,*,b):...⚠️ 如下方式定义会抛出异常 def f(/,pos1,pos2,*):... SyntaxError: invalid syntax # / 前面必须有参数, * 后面必须有参数正确调用方式 f(1,2,3,b4)f(1,2,pos23,b4)参数默认值可选参数 Python中给定默认值的参数都是可选参数。 参数默认值定义 Python函数定义的时候按照参数顺序从第一个给定默认值之后的参数之后必须提供默认值 def f(a1,b2,cNone):...异常定义及其错误 def f(a,b2,c):... def f(a,b2,c):^ SyntaxError: non-default argument follows default argument引用类型默认值异常行为 有的时候你可能需传入一个默认的列表如 def f(a:list[]):a.append(1)return a当我们如下操作会发现第二次的输出并不是我们希望的 f() # 输出 [1] f() # 输出 [1, 1]正确应该采用如下方式定义 def f(a: list None):if a is None:a []a.append(1)return a# 字典参数的情况 def f(a: dict None):if a is None:a {}参数类型声明 Python是动态类型语言其变量的类型在运行时才确定。虽然这种灵活性为开发者带来了方便但也可能导致代码在运行时发生类型错误。为了提高代码的可维护性和可读性Python 3.5及以上版本引入了类型提示Type Hints。 参数类型定义申明 在函数定义时可以使用冒号**:**来指定参数的类型 def greet(name: str):return Hello, name函数返回值类型声明 我们可以使用**-**符号来指定函数的返回值类型。例如 def add(x: int, y: int) - int:return x y其他类型参数声明参考typing库。 参数与装饰器 首先我们定义了一系列实用的装饰器用于测量函数的执行时间。接着我们定义了几个简单的函数其中包括不同类型的参数和使用了不同装饰器的函数。 import inspect from functools import wrapsdef timeit(func):import timewraps(func)def wrapper(*args, **kwargs):start time.time()func(*args, **kwargs)print(fcost time: {time.time() - start})return wrapperdef timeit1(name):def _timeit(func):import timewraps(func)def wrapper(*args, **kwargs):start time.time()func(*args, **kwargs)print(f{name} cost time: {time.time() - start})return wrapperreturn _timeitdef timeit2(name):def _timeit(func):import timewraps(func)def wrapper(param1, param2, param3):start time.time()func(param1, param2, param3)print(f{name} cost time: {time.time() - start})return wrapperreturn _timeitdef func1(param1, param2, param3):print(param1, param2, param3)timeit def func2(param1, param2, param3):print(param1, param2, param3)timeit1(func3) def func3(param1, param2, param3):print(param1, param2, param3)timeit2(func4) def func4(param1, param2, param3):print(param1, param2, param3)def call_func(func):arg_spect inspect.getfullargspec(func)print(farg_spect: {arg_spect})... call_func(func1) arg_spect: FullArgSpec(args[param1, param2, param3], varargsNone, varkwNone, defaultsNone, kwonlyargs[], kwonlydefaultsNone, annotations{}) -------------------- call_func(func2) arg_spect: FullArgSpec(args[], varargsargs, varkwkwargs, defaultsNone, kwonlyargs[], kwonlydefaultsNone, annotations{}) -------------------- call_func(func3) arg_spect: FullArgSpec(args[], varargsargs, varkwkwargs, defaultsNone, kwonlyargs[], kwonlydefaultsNone, annotations{}) -------------------- call_func(func4) arg_spect: FullArgSpec(args[param1, param2, param3], varargsNone, varkwNone, defaultsNone, kwonlyargs[], kwonlydefaultsNone, annotations{}) --------------------通过上述结果我们可以看到不同类型的函数具有不同的参数信息。对于普通的函数我们可以通过 inspect.getfullargspec 来获取其参数信息。而对于使用了装饰器的函数装饰器的实现方式会影响inspect.getfullargspec方法获取实际的参数信息。
http://www.zqtcl.cn/news/113358/

相关文章:

  • 优秀手机网站大学生创新产品设计作品
  • 备案期间关闭网站宝应人才网
  • 响应式网站一般做几个版本官网+wordpress
  • 太原网站建设方案服务佛山市建设工程有限公司
  • 智能网站建设平台php mysql 网站源码
  • 夏天做那些网站能致富百度关键词价格怎么查询
  • 厦门微信网站专业从事网站开发公司
  • 网站标题的写法湖南如何做网络营销
  • 设计做兼职的网站求推荐医院英文网站建设
  • 有没得办法可以查询一个网站有没得做竞价呀ai可以用来做网站吗
  • 俄乌局势最新消息惠州seo排名优化
  • 常州发布信息的有什么网站电商平台建设公司
  • 高新区手机网站建设长沙关键词优化服务
  • 网站开发预算报价表推销网站的方法
  • 做网站需要几个人昆明旅行社网站开发
  • 上海产品网站建设网站建设分为哪些
  • 史志网站建设在线网站建设工程标准
  • 青海省建设工程在哪个网站发布北京专业网站外包公司
  • 东营网站建设公司wordpress获取子分类
  • 网站的尾页要怎么做d代码做网站
  • 自己做一元购网站烟台网站设计公司推荐
  • 有没有做彩票直播的网站成都十八个网红打卡地
  • 急求聊城网站建设网站服务器管理系统
  • 做网站需要什么许可证商场设计效果图
  • html网页制作视频windows优化大师有哪些功能
  • 国外建站主机帝国手机网站cms系统
  • 响应式网站建设哪家好网站空间支付方式
  • 腾讯广告建站工具贵州企业网站建设价格
  • 最新的网站建设架构wordpress管理员头像
  • 手机网站模版化工网站建设公司