python __main__ 例子
时间: 2023-10-17 22:02:55 浏览: 39
以下是一个示例:
```python
# hello.py
def hello():
print("Hello, world!")
if __name__ == "__main__":
hello()
```
在这个例子中,我们定义了一个简单的函数 `hello()`,它打印了一条消息 "Hello, world!"。
然后,我们使用 `if __name__ == "__main__":` 来检查模块是否作为主程序运行。如果是,则调用 `hello()` 函数打印消息。
现在,我们可以在命令行中运行这个模块:
```
$ python hello.py
Hello, world!
```
这个例子展示了如何使用 `__main__` 来控制模块的行为,使其可以在命令行中直接运行,同时也可以在其他模块中作为库使用。
相关问题
python __main__
`__main__` 是 Python 中的一个特殊名称,它表示当前执行的模块。当我们直接运行一个 Python 脚本时,解释器会把该脚本的 `__name__` 属性设置为 `__main__`。这样做的目的是为了区分当前脚本是被直接执行还是被其他模块导入使用。
我们可以使用 `if __name__ == "__main__":` 来判断当前模块是否为主模块,只有当当前模块为主模块时,才会执行 `if` 语句块中的代码。这种机制常用于模块的测试和调试。
举个例子,假设我们有一个名为 `example.py` 的脚本,其中包含以下代码:
```python
def my_function():
print("Hello from my_function!")
if __name__ == "__main__":
my_function()
```
如果我们直接运行 `example.py`,则会输出 `"Hello from my_function!"`。但如果其他模块导入了 `example.py` 并调用了 `my_function()`,则不会执行 `if __name__ == "__main__":` 语句块中的代码。
python __class__
`__class__` 是一个特殊的属性,在Python中表示一个对象所属的类。它返回对象的类对象,可以用于获取对象所属的类,并进行一些操作,比如创建新的实例。
以下是一个示例代码,演示了如何使用 `__class__` 属性:
```python
class MyClass:
pass
obj = MyClass()
print(obj.__class__) # 输出 <class '__main__.MyClass'>
new_obj = obj.__class__()
print(new_obj) # 输出 <__main__.MyClass object at 0x000001>
print(obj.__class__ is new_obj.__class__) # 输出 True,表示它们属于同一个类
```
在上面的例子中,`obj` 是 `MyClass` 类的实例,通过访问 `obj.__class__` 可以获取到该对象所属的类对象。然后,我们可以使用 `obj.__class__()` 创建一个新的实例 `new_obj`,并验证它们都属于同一个类。
需要注意的是,虽然 `__class__` 属性可以被访问和使用,但通常不建议直接使用它来创建新的实例。更好的做法是使用类名来创建新的实例,例如 `new_obj = MyClass()`。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)