Skip to content

Instantly share code, notes, and snippets.

@abadger
Created April 12, 2022 17:54
Show Gist options
  • Save abadger/1495db9a3260c98acda8fad41a95a121 to your computer and use it in GitHub Desktop.
Save abadger/1495db9a3260c98acda8fad41a95a121 to your computer and use it in GitHub Desktop.
# Bad code:
class Foo:
def one(self, normalize):
self.normalize = normalize
self.username = os.geteuid()
self.token = os.environ['TOKEN']
data = self.do_a_thing()
if some_check():
data2 = self.do_a_thing()
data3 = self.do_a_thing()
def do_a_thing(self):
data = ask_server('retrieve', self.username, token=self.token)
if self.normalize:
data = correct_data(data)
return data
Better to do it like this:
class Foo:
def __init__(self, username, token):
self.username = username
self.token = self.token
Or like this:
class ThingDoer:
def __init__(self, username, token, normalize):
self.username = username
self.token = token
self.normalize = normalize
def __call__(self):
data = ask_server('retrieve', self.username, token=self.token)
if self.normalize:
data = correct_data(data)
return data
class Foo:
def one(self, normalize):
do_a_thing = ThingDoer(username, token, normalize)
data = do_a_thing()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment