我是一個相對較新的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個問題了,你不能不斷更新它來請求更多的信息;這就是*新問題。 –