首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python 获取函数的相关信息

python 获取函数的相关信息

作者头像
用户5760343
发布于 2019-08-02 02:55:20
发布于 2019-08-02 02:55:20
7090
举报
文章被收录于专栏:sktjsktj

def tag(name, *content, cls=None, **attrs)->str: """生成一个或多个HTML标签""" if cls is not None: attrs['class'] = cls if attrs: attr_str = ''.join(' %s="%s"' % (attr, value) for attr, value in sorted(attrs.items())) else: attr_str = '' if content: return '\n'.join('<%s%s>%s</%s>' % (name, attr_str, c, name) for c in content) else: return '<%s%s />' % (name, attr_str)

print(tag.defaults) print(tag.code) print(tag.code.co_varnames) print(tag.code.co_argcount)

from inspect import signature sig=signature(tag) my_tag = {'name': 'img', 'title': 'Sunset Boulevard','src': 'sunset.jpg', 'cls': 'framed'} si=sig.bind(**my_tag) print(sig) print(str(si)) print(sig.return_annotation) for name,param in sig.parameters.items(): print(param.kind,':',name,'=',param.default)

输出结果

None <code object tag at 0x000001DDFE2DA1E0, file "D:/file/python/today/today.py", line 1> ('name', 'cls', 'content', 'attrs') 1 (name, *content, cls=None, **attrs) <BoundArguments (name='img', cls='framed', attrs={'title': 'Sunset Boulevard', 'src': 'sunset.jpg'})> <class 'str'> POSITIONAL_OR_KEYWORD : name = <class 'inspect._empty'> VAR_POSITIONAL : content = <class 'inspect._empty'> KEYWORD_ONLY : cls = None VAR_KEYWORD : attrs = <class 'inspect._empty'>

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.07.31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
流畅的Python 5. 函数
文章目录 1. 函数对象 2. 高阶函数 3. 匿名函数 4. 可调用函数 5. 定位参数、仅限关键字参数 6. 获取参数信息 7. 函数注解 8. 支持函数式编程的包 1. 函数对象 def factorial(n): ''' returns n! n的阶乘 ''' return 1 if n < 2 else n * factorial(n - 1) print(factorial(42)) print(factorial.__doc__) # returns n
Michael阿明
2021/09/06
3430
python tag生成html标签脚本
def tag(name, *content, cls=None, **attrs): """生成一个或多个HTML标签""" if cls is not None: attrs['class'] = cls if attrs: attr_str = ''.join(' %s="%s"' % (attr, value) for attr, value in sorted(attrs.items())) else: attr_str = '' if content: return '\n'.join('<%s%s>%s</%s>' % (name, attr_str, c, name) for c in content) else: return '<%s%s />' % (name, attr_str)
用户5760343
2019/08/02
1.3K0
python的inspect模块
inspect.signature(fn)将返回一个inspect.Signature类型的对象,值为fn这个函数的所有参数
周小董
2019/03/25
1.9K0
《流畅的Python》第五章学习笔记
一个计算a+b的函数,我们把它其中的一个入参固定为3,这样我们只需要传入一个参数就可以计算了
zx钟
2020/12/24
5030
8-函数类型详解
在python中函数(function)或方法(method)的参数类型有哪些,每种参数类型要怎么传参才能调用,默认参数要怎么设置才算合理。在python有一个标准模块inspect, 主要提供了四种用处:
用户3106371
2019/03/11
5150
python 函数
None <code object tag at 0x000001902D2EA1E0, file "D:/file/python/today/today.py", line 1> ('name', 'cls', 'content', 'attrs') 1
用户5760343
2019/08/02
8770
干货分享 | Python练手 "小例子" 闯关60题!
int(x, base =10) , x可能为字符串或数值,将x 转换为一个普通整数。如果参数是字符串,那么它可能包含符号和小数点。如果超出了普通整数的表示范围,一个长整数被返回。
用户6888863
2021/07/19
4050
Python廖雪峰实战web开发(Day5-编写web框架)
因为复杂的Web应用程序,光靠一个WSGI(Web Server Gateway Interface)函数来处理还是太底层了,我们需要在WSGI之上再抽象出Web框架(比如Aiohttp、Django、Flask等),从而进一步简化Web开发。
用户7886150
2020/12/31
1.2K0
Python函数参数和注解是什么
⑥字典前加上**,其所有元素作为单个参数传入,同名键会绑定到对应具名参数上,余下的被**args捕获。
dongfanger
2021/04/13
6970
python 对传参进行参数检查的装饰器
首先,装饰器只会在函数定义时被调用一次。 有时候你去掉装饰器的功能,那么你只需要简单的返回被装饰函数即可。 下面的代码中,如果全局变量 debug 被设置成了False(当你使用-O或-OO参数的优化模式执行程序时), 那么就直接返回未修改过的函数本身:
用户5760343
2019/12/12
9900
有人说 Python 不支持函数重载?
众所周知,Python 是动态语言,所谓动态语言,就是变量的类型是动态的,程序运行期间变量类型可以随意变化,由于 Python 的变量是没有固定类型的,而函数重载却依赖变量类型,重载就是定义多个同名函数,但这些同名函数的参数类型不同,传入不同类型的参数时执行与之对应的函数。
somenzz
2021/11/04
7080
每天一道 python 面试题 - Python中的元类(metaclass) 详细版本
在理解元类之前,您需要掌握Python的类。Python从Smalltalk语言中借用了一个非常特殊的类概念。
公众号---人生代码
2020/05/16
4860
获取Python函数信息的方法
Python的反射机制可以动态获取对象信息以及动态调用对象,本文介绍如何获取对象中的函数注释信息以及参数信息。
Python学习者
2023/04/14
6830
python高级之描述器
描述器用到的方法     用到3个魔术方法: __get__()、__set__()、__delete__()     方法使用格式:         obj.__get__(self, instance, owner)         obj.__set__(self, instance, value)         obj.__delete__(self, instance)     self: 指当前类的实例本身     instance: 指owner的实例     owner: 指当前实例作为
py3study
2020/01/14
4410
Python 元类(Meta Class):解密 Python 面向对象编程的幕后推手
在 Python 编程中,我们每天都在和类打交道,但是你是否也和我一样想过:类本身是什么?是谁创建了类?元类(Meta Class)就是用来创建类的"类"。今天让我们一起深入理解这个强大而神秘的特性。
Piper破壳
2024/12/13
1880
Python装饰器实现函数动态类型检查
类型检查主要使用了inspect库。本次代码运行环境是python3.5.2。inspect库的使用方法在下面介绍。
职场亮哥
2020/10/10
8630
py3_cookbook_notes_02
最近在看Python Cookbook第三版,将看书过程中一些平时不太容易注意的知识点记录下来。 函数 可接受任意数量参数的函数 def avg(first, *rest): return (first + sum(rest)) / (1 + len(rest)) # Sample use avg(1, 2) # 1.5 avg(1, 2, 3, 4) # 2.5 import html def make_element(name, value, **attrs): keyvals =
jeremyxu
2018/05/11
1.3K0
python笔记76-types.FunctionType 动态创建函数
FunctionType 需传一个CodeType 类型,可以从compile() 函数编译后的code取出编译后的code 类型
上海-悠悠
2023/01/03
5080
python笔记76-types.FunctionType 动态创建函数
python 学习-打开潘多拉的魔盒-元类(metaclass)学习
在 Python 里面大家都比较熟悉了,通过 class 关键字创建一个类,这是通过硬编码来实现的。 那么如何动态创建一个类呢,如果给一批数据,让它动态生成一个类?
上海-悠悠
2023/08/22
2830
python 学习-打开潘多拉的魔盒-元类(metaclass)学习
【转载】Python自省
原文作者: AstralWind 出处:博客园 原文链接:https://www.cnblogs.com/huxi/archive/2011/01/02/1924317.html
用户7886150
2020/12/29
7120
相关推荐
流畅的Python 5. 函数
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档