Basic - 2

1. @classmethod, @staticmethod

  • @objectmethod: 1st params = self

  • @classmethod: 1st params = cls

  • @staticmethod: no params required

class Store:
    def __init__(self, name):
        self.name = name
        self.items = []

    def add_item(self, name, price):
        self.items.append({
            'name': name,
            'price': price
        })

    def stock_price(self):
        total = 0
        for item in self.items:
            total += item['price']
        return total

    @classmethod
    def franchise(cls, store):
        new_name = '{} - franchise'.format(store.name)
        return cls(new_name)

    @staticmethod
    def details(store):
        return '{}, total stock price: {}'.format(store.name, int(store.stock_price()))


a = Store('Amazon')
a.add_item('macbook', '1100')

Store.franchise(a)
Store.details(a)

2. Lambda

simple

(lambda x: x * 3)(5)

# - - - is equal to - - -

def f(x):
    return x * 3
f(5)

usage

def wrap(another):
    return another()

def add_two_numbers():
    return 35 + 77

wrap(add_two_numbers)

# - - - is equal to - - -
wrap(lambda: 35 + 77)

3. Python folders

folders = package

4. Array methods

map = modify each element, and return array

filter = return array of elements that are true

find= filter & first

reduce = accumulate array, and return a single value

Last updated

Was this helpful?