It likely won't be a problem in this particular case, but it's generally a bad idea to use empty mutable structures as default arguments as they get bound to the function at function definition time.
If I had something like
```python
def foo(bar=[]):
    bar.extend('baz')
    print bar
```
you end up with something like this:
```python
>>> foo()
['b', 'a', 'z']
>>> foo()
['b', 'a', 'z', 'b', 'a', 'z']
>>> foo()
['b', 'a', 'z', 'b', 'a', 'z', 'b', 'a', 'z']
>>> foo()
['b', 'a', 'z', 'b', 'a', 'z', 'b', 'a', 'z', 'b', 'a', 'z']
```

You can also rely on the falsey-ness of an empty list rather than ensuring len(list) > 0, but in this case, you'd probably want
```python
def yum_clean_metadata(repos=None):
    clean = 'yum clean metadata'
    if repos is not None:
        return '{0} --disablerepo=\* --enablerepo={1}'.format(clean, ','.join(repos))
    return clean
```