This commit is contained in:
Mike Bloy 2023-12-10 10:39:45 -06:00
parent 617e409052
commit 18fb6da5ad
2 changed files with 9 additions and 2 deletions

View File

@ -2,8 +2,6 @@ from structure import Structure
class Stock(Structure): class Stock(Structure):
_fields = ('name', 'shares', 'price')
def __init__(self, name, shares, price): def __init__(self, name, shares, price):
self._init() self._init()
@ -13,3 +11,6 @@ class Stock(Structure):
def sell(self, nshares): def sell(self, nshares):
self.shares -= nshares self.shares -= nshares
Stock.set_fields()

View File

@ -1,3 +1,4 @@
import inspect
import sys import sys
@ -20,3 +21,8 @@ class Structure:
super().__setattr__(name, value) super().__setattr__(name, value)
else: else:
raise AttributeError(f"No attribute {name}") raise AttributeError(f"No attribute {name}")
@classmethod
def set_fields(cls):
sig = inspect.signature(cls)
cls._fields = tuple(sig.parameters)