在函数体中,除非引用全局变量,否则各个函数内的变量是相互独立的名称空间,不能相互穿插调用
class Date:
def __init__(self, year, month, day):
self.year = year
self.month = month
self.day = day
def tell_birth(self):
print('%s-%s-%s' % (self.year, self.month, self.day))
class People:
def __init__(self, name, age, year, month, day):
self.name = name
self.age = age
self.birth = Date(year, month, day)
def name(self):
print(self.name)
obj1 = People('ly', 16, 2000, 11, 11)
obj1.birth.tell_birth()
但是在类中,self 会将变量转化为类的属性,并将之加载到整个类的名称空间当中,因此只要是类中的方法或函数都可以调用该属性。
PS:套用函数的概念即是将当前函数的变量加载到全局的名称空间,将其转化为了全局变量,进而全局当中的所有函数都可以调用该变量。