#coding:utf-8
#公有属性和私有属性,本身并不区分对象的还是类的,只是我们平时便于定位才这么区分的
var4 = "全局变量var4"
class shuxing():
var1=" 类属性,公有属性var1"
__var2="类的私有属性 __var2"
def fun(self):
self.var2="对象的公有属性var2"
self.__var3="对象的私有属性 __var3"
'''print self.__var3 #在类的内部打印'''
var4 = "函数 fun的局部变量var4" # 仅仅是一个局部变量
''' print var4 #只有在此处调用局部变量
print self.__var2 #在类的内部打印
#========= var4和__var3的区别===========
#局部变量在函数的内部使用
def other(self):
print var4 # 默认python认为是打印全局变量,全局变量在类的外部定义
print self.__var3
zou = shuxing()
zou.fun() # 如果没有这个声明调用,__var3就会报错
print "#" * 20
zou.other() # 报错 名字错误,var4没有定义,除非将var4声明为全局变量
'''
'''=========公有属性============'''
#zou=shuxing()
#print zou.var1 #类属性是可以被类和对象直接调用
'''>>>
类属性,公有属性var1 '''
#zou=shuxing()
#print shuxing.var1
'''>>>
类属性,公有属性var1
#由于可以直接调用,所以可以直接使用类shuxing来调用 '''
'''==========私有属性===================='''
#zou=shuxing()
#print zou.__var2 #报错
#print shuxing.__var2 #报错
'''======== 对象的公有属性 =========='''
#print shuxing.var2 #报错,提示没有var2这个属性
'''经过分析,因为var2在函数fun中,如果fun不被调用,则var2不会被读取 '''
#zou=shuxing()
#zou.fun()
#print zou.var2
''' >>> 对象的公有属性var2'''
''' =================体现句柄的特性。=========='''
#zou=shuxing()
#qi = shuxing()
#zou.fun() # 被实话zou给调用
#print zou.var2 #''' >>> 对象的公有属性var2'''
#print qi.var2 # 报错
''' ========对象的私有属性========'''
#zou=shuxing()
#zou.fun()
#print zou.__var3 #报错
''' ====对象的局部变量====='''
#zou=shuxing()
#zou.fun() #在此处算是调用fun函数,然后触发print 打印var4的内容
#print zou.var4 #报错
阅读(2617) | 评论(0) | 转发(1) |