# फ़ंक्शन परिभाषित करना — पायथन

Source: https://www.geekswithgeeks.com/hi/python/py-functions-basics

> `def` से नाम के पीछे पुनः-उपयोगी लॉजिक पैक करें।

## def और return

`def` फ़ंक्शन शुरू करता है। `return` मान वापस भेजता है; इसके बिना फ़ंक्शन `None` लौटाता है।

```python
def area(width, height):
    return width * height

print(area(4, 5))   # 20
```

## डिफ़ॉल्ट आर्ग्युमेंट

**डिफ़ॉल्ट आर्ग्युमेंट** किसी पैरामीटर को फ़ॉलबैक मान देकर वैकल्पिक बना देता है।

```python
def greet(name, greeting="Hello"):
    return f"{greeting}, {name}!"

print(greet("Ada"))
print(greet("Ada", "Hi"))
```

## परिवर्तनीय डिफ़ॉल्ट का ख़तरा

`[]` या `{}` जैसे परिवर्तनीय ऑब्जेक्ट को डिफ़ॉल्ट आर्ग्युमेंट न बनाएँ — यह **एक बार** बनता है और सभी कॉल में साझा होता है।
