Skip to content

Latest commit

 

History

History
52 lines (46 loc) · 1.14 KB

pythony.md

File metadata and controls

52 lines (46 loc) · 1.14 KB

Cool python (3) stuff

Decorators as functions

from functools import wraps
def decorator_name(f):
    @wraps(f)
    def decorated(*args, **kwargs):
        if not can_run:
            return "Function will not run"
        return f(*args, **kwargs)
    return decorated

@decorator_name
def func():
    return("Function is running")

can_run = True
print(func())
# Output: Function is running

can_run = False
print(func())
# Output: Function will not run

Decorators as class

class logit(object):
    def __init__(self, logfile='out.log'):
        self.logfile = logfile

    def __call__(self, func):
        log_string = func.__name__ + " was called"
        print(log_string)
        # Open the logfile and append
        with open(self.logfile, 'a') as opened_file:
            # Now we log to the specified logfile
            opened_file.write(log_string + '\n')
        # Now, send a notification
        self.notify()

    def notify(self):
        # logit only logs, no more
        pass

Virtual envs

pip install virtualenv
virtualenv myproject # virtualenv --system-site-packages mycoolproject
source bin/activate
deactivate