标签:__ 封装 self func print class def
广义的封装:
把方法和变量都封装在类里
比如人狗大战
规范创建对象
创建所有人的属性名都一致
把所有的方法装进一个角色里
狭义的封装:
在类的外部不能调用,私有化了
# 举例 #广义的 # class Student: # def __init__(self,name): # self.name=name # # laowang=Student('老王') # print(laowang.name)
#狭义的封装 # class Student: # def __init__(self,name): # self.__name=name # 加上 __ 私有化 # # laowang=Student('老王') # print(laowang.__name) #作用:为了更好的限制用户,不能随便查看和修改,增加程序的安全性 # class A: # __val=[] # def __init__(self): # print(__val) # 类的内部可以调用 # # print(A.val) # 外部不能调用 # print(A.__val) # 外部不能调用 # class B: # def __aaa(self): # '私有化方法,相当于把方法保护起来了' # print('aaa') # # def func(self): 定义一个方法调用 # self.__aaa() # # b=B() # b.aaa() # b.__aaa() # b.func() # 可以使用方法调 # 总结:在类的内部,属性、类变量、实例方法都可以变成私有的,一旦变成私有的,就只能在类的内部使用
#查看私有变量的名字如何改变 # class A: # __abc=123 # 底层偷偷改了名字 _A__abc # # print(A.__dict__) #查看
私有变量不能被继承
#私有练习题 # class A: # def __func(self): # _A__func # print('in A') # # class B(A): # def wahaha(self): # self.__func() # _B_func # # b=B() # b.wahaha() #报错 调用不了 class A : def __init__(self): # 初始化 self.__func() # _A__func() def __func(self): # _A__func() print('in A') class B(A): def __func(self): print('in B') b=B() # 创建对象,先初始化,B类中没有初始化,到父类中去找 相同名字 # 输出 in A
#多态
# 在python中,一切皆对象,处处是多态
# 'ajsg'.split() 相当于 对象.方法名()
def func(a,b,c):
print(a,b,c)
func('1',True,[])
标签:__,封装,self,func,print,class,def 来源: https://www.cnblogs.com/gm11/p/16444211.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。