Writing Functions in Python
Shayne Miel
Software Architect @ Duo Security
def my_context():
# Add any set up code you need
yield
# Add any teardown code you need
@contextlib.contextmanager def my_context():
# Add any set up code you need
yield
# Add any teardown code you need
@contextlib.contextmanager
def my_context():
print('hello')
yield 42
print('goodbye')
with my_context() as foo:
print('foo is {}'.format(foo))
hello
foo is 42
goodbye
@contextlib.contextmanager
def database(url):
# set up database connection
db = postgres.connect(url)
yield db
# tear down database connection
db.disconnect()
url = 'http://datacamp.com/data'
with database(url) as my_db:
course_list = my_db.execute(
'SELECT * FROM courses'
)
@contextlib.contextmanager
def database(url):
# set up database connection
db = postgres.connect(url)
yield db
# tear down database connection
db.disconnect()
url = 'http://datacamp.com/data'
with database(url) as my_db:
course_list = my_db.execute(
'SELECT * FROM courses'
)
@contextlib.contextmanager
def database(url):
# set up database connection
db = postgres.connect(url)
yield db
# tear down database connection
db.disconnect()
url = 'http://datacamp.com/data'
with database(url) as my_db:
course_list = my_db.execute(
'SELECT * FROM courses'
)
@contextlib.contextmanager
def database(url):
# set up database connection
db = postgres.connect(url)
yield db
# tear down database connection
db.disconnect()
url = 'http://datacamp.com/data'
with database(url) as my_db:
course_list = my_db.execute(
'SELECT * FROM courses'
)
@contextlib.contextmanager
def in_dir(path):
# save current working directory
old_dir = os.getcwd()
# switch to new working directory
os.chdir(path)
yield
# change back to previous
# working directory
os.chdir(old_dir)
with in_dir('/data/project_1/'):
project_files = os.listdir()
Writing Functions in Python