# What Does if name == “main”: Do in Python?

The `if __name__ == "main"` is a guarding block that is used to contain the code that should only run went the file in which this block is defined is run as a script. What it means is that if you run the file as a script the **`__**name**__**` variable will be equal to `'main'`.

Let’s look at an example:

```python
mylib.py:

def say_hi():
	print('hi from the function')

if __name__ == 'main':
	print('the main block is being executed')
	say_hi()
```

In the example above, we have defined a `say_hi` function that will simply say hi when called. Then there is a guarded block with the `if __name__ == 'main':` statement.

If you run the script in the console lie this:

```bash
python3 mylib.py
```

The output will be the following:

```
Output:
the main block is being executed
hi from the function
```

But if you include the `mylib.py` file in some other python file and run that file as a script, you will see that the guarded block will not be executed.

```python
other.py:

import say_hi from mylib

say_hi()
```

```
Output:
hi from the function
```