Python3 --- 特殊变量

1、__name__:

一个模块被另一个程序第一次引入时,其主程序将运行。如果我们想在模块被引入时,模块中的某一程序块不执行,我们可以用__name__属性来使该程序块仅在该模块自身运行时执行。

if __name__ == '__main__':
   print('程序自身在运行')
else:
   print('我来自另一模块')


2、__all__:

python模块中的__all__,可用于模块导入时限制,如:

from module import *

此时被导入模块若定义了__all__属性,则只有__all__内指定的属性、方法、类可被导入。

若没定义,则导入模块内的所有公有属性,方法和类 。

# 在别的模块中,导入该模块时,只能导入__all__中的变量,方法和类
__all__ = ('A', 'func')  
class A():
    def __init__(self, name, age):
        self.name = name
        self.age = age

class B():
    def __init__(self, name, id):
        self.name = name
        self.id = id

def func():
    print('func() is called!')

def func1():
    print('func1() is called!')

#test.py中定义了__all__属性,只能导入__all__中定义的属性,方法和类
from test import *  
a=A('python','24')  
print(a.name,a.age)  
func()  
#func1() #NameError: name 'func1' is not defined  
#b=B('python',123456) #NameError: name 'B' is not defined  


3、__file__:

文件所在的路径

import os
print(os.__file__)


4、__slots__:

Python允许在定义class的时候,定义一个特殊的__slots__变量,来限制该class实例能添加的属性:

class Person(object):
    __slots__ = ("name", "age")

P = Person()
P.name = "老王"
P.age = 20
P.score = 100

5、__metaclass__:


你可能感兴趣的:(Python3,------,Python3,Base)