我是一个相对较新的Python学习者。因此,要通过不同的编码技术,同时,我碰到这样的:使用参数和签名
from inspect import Parameter, Signature
def make_signature(names):
return Signature(Parameter(name, Parameter.POSITIONAL_OR_KEYWORD) for name in names)
class Structure:
list_fields = []
def __init__(self, *args):
for name, val in zip(self.list_fields, args):
setattr(self, name, val)
class Stock(Structure):
__signature__ = make_signature(['name', 'shares', 'price'])
#list_fields = ['name', 'shares', 'price']
class Point(Structure):
list_fields = ['x', 'y']
obj2=Point(20,40)
obj1=Stock('googl', 100, 8000)
print(obj1.name)
我明白Structure
类及其与Point
类,这是继承Structure
类,因此它是__init__
方法的整合。但是当我创建Point
类的对象时,它不支持位置参数,但Stock
类对象确实支持该功能。
- 任何人都可以请向我解释为什么&这是怎么发生的?
- 何时使用Parameter,Signature?
- 这与元编程有什么关系?
- 更多类似的例子。
Parameter
函数有什么用途make_signature
方法和make_signature
方法在做什么?- 程序的流程即哪个函数返回给谁,反之亦然。据我所知,
Stock
班和Point
班正在呼叫Structure
班,但是什么时候make_signature
方法进来?
我想读一些有关的文件,但Signature
这些例子都是这样的,并没有太多沉重的东西对我来说我一直迷路回溯这段代码也单证我找不到任何好的解释Python中元编程的文档。
您能否介绍一下make_signature方法中的Parameter函数和make_signature方法的用途是什么?你还可以告诉我程序的流程,即哪个功能返回给谁,反之亦然。 – BlackBeard
更新了我的回答@NiladriSekharBasu。注意你的问题已经是5个问题了,你不能不断更新它来请求更多的信息;这就是*新问题。 –