Ho la seguente classe:
import Radar
class Domain(Radar):
URL = 'https://mxtoolbox.com/DNSLookup.aspx'
ADDRESS_KEYS = ('mailing_address', 'city_name', 'state_name', 'zip_code',
'country_name')
GENERAL_PARAMS = {'format': 'json'}
BALANCE_PARAMS = {**Radar.GENERAL_PARAMS, 'account': 'balance'}
SUCCESSFUL_QUERY = 1
API_KEY_ERROR_REASON = 'Invalid API Key'
MASKED_ENTITY_INDICATOR = 'To View Unmasked Data'
def __init__(self, *args, **kwargs):
self.entity_title = 'Crawling'
super().__init__(*args, **kwargs)
I metodi di classe (solo loro) accedono a ciascuno di questi membri statici costanti alcune volte.
Quali sono i vantaggi / svantaggi di inserire queste variabili nello scope esterno (come variabili a livello di file - e non in variabili statiche di livello di classe)?
Anche se so che entrambi gli approcci funzionerebbero, mi chiedo dove sia il posto migliore per inserire le variabili - all'interno della classe o sopra di esso.
L'altra opzione:
import Radar
URL = 'https://mxtoolbox.com/DNSLookup.aspx'
ADDRESS_KEYS = ('mailing_address', 'city_name', 'state_name', 'zip_code',
'country_name')
GENERAL_PARAMS = {'format': 'json'}
BALANCE_PARAMS = {**Radar.GENERAL_PARAMS, 'account': 'balance'}
SUCCESSFUL_QUERY = 1
API_KEY_ERROR_REASON = 'Invalid API Key'
MASKED_ENTITY_INDICATOR = 'To View Unmasked Data'
class Domain(Radar):
def __init__(self, *args, **kwargs):
self.entity_title = 'Crawling'
super().__init__(*args, **kwargs)