Я относительно новый ученик 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
функция вmake_signature
способ и какойmake_signature
способ делает? - Поток программы i.e, какая функция возвращается кому и наоборот. Насколько мне известно, класс
Stock
и классPoint
вызывают классStructure
, но когда он принимает методmake_signature
?
И я попытался прочитать документацию о Signature
, но эти примеры не являются такого рода и слишком много тяжелых вещей для меня, пока я заблудился возвратов этот код и я документации не мог найти хорошую объяснительную документация по мета-программированию на Python.
Не могли бы вы объяснить мне, что такое функция Parameter в методе make_signature и что делает метод make_signature? Можете ли вы также сказать мне поток программы, т.е. какая функция возвращается кому и наоборот. – BlackBeard
Обновлен мой ответ @NiladriSekharBasu. Обратите внимание, что на ваш вопрос уже есть 5 вопросов в одном, вы не можете постоянно обновлять его, чтобы запрашивать дополнительную информацию; вот для чего нужны * новые * вопросы. –