不加self情况
在类级别:表示为类的一个属性,可以作为全局变量来使用,可以作为类属性或对象属性被调用
class Example(object):
a =10
def __init__(self):
self.a = 1 # 若注释这句 则my_instance.a 输出结果为10
self.b = 100
a = 99
my_instance = Example()
try:
print(my_instance.a)
except:
print("instance.a error")
print(Example.a)
>>>1
>>>10
当不加self的变量是类中的函数方法的,则只能当作为方法的局部变量无法直接被作为类属性直接访问。
加self情况
前提是加self的变量是在__init__函数中被定义的(但这不是必须的),表示为实例属性,即每个实例可以设置不同的值而互相不影响。
class Example(object):
a =10
def __init__(self):
self.b = 0
self.c = 777
def Test_func(self):
self.a = 1
self.b = 100
a = 99
print(self.b)
my_instance = Example()
print(my_instance.c)
my_instance.Test_func()
>>>777
>>>100