python基础内置变量

1. __name__:

作用:用于标识当前模块的名称。当一个 Python 文件被直接运行时,__name__ 的值为 "__main__";当该文件作为模块被其他文件导入时,__name__ 的值为该文件的文件名(不包含 .py 后缀)。

  • 若模块被直接运行,值为 "__main__"。

  • 若模块被导入,值为模块的文件名(不含 .py 后缀)

    # test.py
    print(f"当前模块的 __name__ 是: {__name__}")
    if __name__ == "__main__":    
        print("此文件正在被直接运行")
    else:    
        print("此文件作为模块被导入")

2. __file__ :

作用:对于脚本文件,它返回该脚本文件的完整路径(包含文件名);对于交互式解释器或嵌入式环境,__file__ 可能未定义。

print(__file__)
# 运行此脚本,会输出该脚本文件的完整路径。

3. __doc__:

作用:用于获取对象的文档字符串。文档字符串是位于模块、类、函数或方法开头的字符串,用于描述该对象的用途和功能。

def add(a, b):    
    """    
    此函数用于计算两个数的和    
    :param a: 第一个数    
    :param b: 第二个数    
    :return: 两数之和    
    """    
    return a + b
print(add.__doc__)#  输出结果为函数 add 的文档字符串内容。

4. __package__:

作用:用于标识当前模块所属的包。如果当前模块是顶级模块(即不在任何包中),__package__ 的值为 None;如果在包中,__package__ 的值为包的名称。

my_package/   
    __init__.py    
    module.py
print(__package__)
#  输出为 "my_package"。

5.__class__ :

作用:用于获取对象所属的类。

class MyClass:    
    pass
obj = MyClass()
print(obj.__class__)
# 输出为 <class '__main__.MyClass'>。

6.__all__:作用:定义模块的公开接口(通过 from module import * 导出的内容)。

# module.py__all__ = ["func1", "func2"]
def func1(): pass
def func2(): pass
def _private_func(): pass  # 不会被导出

 类与对象级内置变量

01__dict__ 作用:存储对象或类的属性字典。
class MyClass:    
    x = 1
obj = MyClass()
print(MyClass.__dict__)  # 输出类的属性(包括方法)
print(obj.__dict__)      # 输出实例的属性(默认为空)


02__class__作用:返回对象所属的类。
num = 42
print(num.__class__)  # 输出:<class 'int'>


03__bases__作用:返回类的父类元组。
class Parent: pass
class Child(Parent): pass

print(Child.__bases__)  # 输出:(<class '__main__.Parent'>,)

04__slots__ 作用:限制类的实例属性,优化内存使用。
class Point:    
    __slots__ = ('x', 'y')  # 只允许实例有 x 和 y 属性
p = Point()
p.x = 1  # 合法
p.z = 2  # 报错:AttributeError


05__traceback__ 作用:存储异常的调用堆栈信息。
try:    
    1 / 0
except Exception as e:    
    print(e.__traceback__)  # 输出堆栈跟踪对象

06__builtins__ 作用:指向内置函数和类型的命名空间(如 len, str, dict 等)。print(__builtins__.len([1,2,3]))  # 输出:30

07__import__(name) 作用:动态导入模块(Python 内部使用)。
math_module = __import__('math')
print(math_module.sqrt(4))  # 输出:2.0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值