Q:

4 Classes, 1 performs actions and asks for input, the others keep track of values

I'm working on a project for CS1410, where I need to simulate a Coffee Machine. I have quite a bit so far, but I'm a bit stuck, specifically with these questions:
In the class CashBox, under the function deposit, I'm trying to add the values together from any coins inserted in the oneAction function from the CoffeeMachine class. However I get the error "'CoffeeMachine' object has no attribute 'credit'" and I'm struggling with understanding why. I can tell it's an inheritance problem, but I'm unsure exactly how to fix it.
How should I format it so that when I get the input in oneAction(), I can take that input and mess with it in the cashBox? What am I doing wrong with self.something, and how can I recognize when to use self, and when to just use a normal variable
I wasn't sure how to upload the code so that the problem is reproducible without giving at least this file, it's all pretty tied together. Some advice on how I could have presented this better would be helpful as well.
Past the original question, any further advice would be seriously appreciated.
Seriously.
Thank you all, hopefully the code is pretty readable. 
class CashBox(object):
    def __init__(self):
        self.credit = 0
        self.totalReceived = 0.0

    def deposit(self,amount):
        self.credit = amount + self.credit
        self.totalReceived = amount + self.totalReceived
        print(self.totalReceived,self.credit)

    def returnCoins(self):
        print("Returning ", self.totalReceived, " cents.")
        self.totalReceived = 0.0

    def haveYou(self,amount):
        return self.credit >= amount

    def deduct(self,amount):
        pass

    def totalCoins(self):
        return self.totalReceived

class CoffeeMachine(object): 

    def __init__(self):
        self.cashBox = CashBox()
        self.selector = self.cashBox

    def oneAction(self):

        while True:
            command = input("""
            ______________________________________________________
            PRODUCT LIST: all 35 cents, except bouillon (25 cents)
            1=black, 2=white, 3=sweet, 4=sweet & white, 5=bouillon      
            Sample Commands: insert 25, select 1. Your command: 
            """)
            words = command.lower().split()           
            if 'select' in words:
                Selector.select(self,int(words[1]))
                print("Great selection!")
            elif 'insert' in words:
                coinsAllowed = [5,10,25,50]
                if int(words[1]) in coinsAllowed:
                    CashBox.deposit(self,int(words[1]))
                else:
                    print("""
                    That is not one of the allowed coins, 
                    please insert a penny, nickel, dime, quarter,
                    or half-dollar. Thank you.
                    """)
            elif 'cancel' in words:
                print("Cancelling transaction. Returning to main menu: ")
                CashBox.returnCoins(self)
            elif 'quit' in words:
                print("Have a nice day!")
            else:
                print("That is not an option")

    def totalCash(self):
        pass    

class Product(object):

    def __init__(self,name,price,recipe):
        self.name = name
        self.price = price
        self.recipe = recipe

    def getPrice(self):
        return self.price

    def make(self):
        print(self.recipe)

class Selector(object):

    def __init__(self):
        self.cashBox = CashBox
        self.products = []
        #self.products.append(Product.

    def select(self, choiceIndex):
        pass

def main():
    m = CoffeeMachine()
    while m.oneAction():
        pass
    #total = m.totalCash()
    #print(f"Total Cash: ${total/100:.2f}")

if __name__ == "__main__":
    main()

Exception has occurred: AttributeError
'CoffeeMachine' object has no attribute 'credit'
  File "C:\Users\Tanner Harmer\Desktop\Coffee2\CashBox.py", line 7, in deposit
    self.credit = amount + self.credit
  File "C:\Users\Tanner Harmer\Desktop\Coffee2\CashBox.py", line 46, in oneAction
    CashBox.deposit(self,int(words[1]))
  File "C:\Users\Tanner Harmer\Desktop\Coffee2\CashBox.py", line 89, in main
    while m.oneAction():
  File "C:\Users\Tanner Harmer\Desktop\Coffee2\CashBox.py", line 95, in <module>
    main()

A:

You're calling the CashBox by using the class name, like if the method were static, but you created an instance of this class (in the constructor self.cashBox = CashBox()) so use it
CashBox.deposit(self,int(words[1])) // OLD, NO
self.cashBox.deposit(self,int(words[1])) // YES

use the cashBox of the CoffeeMachine

