function question

hi all, can anyone explain me the different between this two functions pls?


import bge


def test(cont):
    own=cont.owner
    #do something


def test1():
    cont=bge.logic.getCurrentController()  
    own=cont.owner
    #do something

i mean, its “cont” a keyword python accepts automatically in the fumction or what?
which is the best way to use cont?
how the first function can works if i dont pass cont when i call it?
thx

ok thx for the answer