sorry for the naive question, but when executing this code: 

```
def test_kwargs(n, **kwargs):  
    if kwargs is None:  
        print("no keyword args")  
        return  
    for key, value in kwargs.items():  
        print(str(key))  
        print(str(value))  
        if key==fn:
            print(value(10))  

test_kwargs(3,fn=lambda x: x^2)   

```

I get an error in the check 

```
if key==fn

```

NameError: **name 'fn' is not defined**

However *print(str(key))* correctly outputs 'fn'. 

So what is going on here; why does the test fail and how can the key be checked against possible argument names?