Python_66面向对象之成员修饰符

1、修饰符  修饰器  setattr    有些可以用,有些不可以用

#成员的种类 :普通字段  静态字段  普通方法   静态方法  类方法  普通特性
class FFF:
x='xxxxxdddd'
__x1='x11111111' #'__'就是成员修饰符,x1就是被修饰后的变量字段 私有的 只能在内部访问
def __init__(self):
print ('111')
def fetch(self,bak):
print (bak)
print (FFF.__x1)

print (FFF.x)
f=FFF()
f.fetch('ddd')
输出————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

xxxxxdddd
111
ddd
x11111111

********************************************************************************************************************************************************************************************************************************************

#成员的种类 :普通字段  静态字段  普通方法   静态方法  类方法  普通特性
class FFF:
x='xxxxxdddd'
__x1='x11111111' #'__'就是成员修饰符,x1就是被修饰后的变量字段 私有的 只能在内部访问
def __init__(self):
print ('111')
def fetch(self,bak):
print (bak)
print (FFF.__x1)

print (FFF.x)
f=FFF()
print (f.__x1)
输出————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

Traceback (most recent call last):
File "D:/Users/Administrator/PycharmProjects/untitled/venv/yingshe/chengyuanxiushifu.py", line 13, in <module>    ###这里就报错了,说明__x1这个变量是不能在外部被用的
print (f.__x1)
AttributeError: 'FFF' object has no attribute '__x1'
xxxxxdddd
111

*************************************************************************************************************************************************************************************************************************************************************

#成员的种类 :普通字段  静态字段  普通方法   静态方法  类方法  普通特性
class FFF:
x='xxxxxdddd'
__x1='x11111111' #'__'就是成员修饰符,x1就是被修饰后的变量字段 私有的 只能在内部访问
def __init__(self):
print ('111')
self.__name='name222' #这个name依旧是那个私有的字段 依旧是不可被调用的
def fetch(self,bak):
print (bak)
print (FFF.__x1)


class Bar(FFF):
def fetch(self):
pass

bbb=Bar()
print (bbb.name)
print (FFF.x)
f=FFF()
输出————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

Traceback (most recent call last):
File "D:/Users/Administrator/PycharmProjects/untitled/venv/yingshe/chengyuanxiushifu.py", line 20, in <module>   #依旧提示name不可调用的变量
print (bbb.name)
AttributeError: 'Bar' object has no attribute 'name'
111

 

***************************************************************************************************************************************************************************************************************************

#成员的种类 :普通字段  静态字段  普通方法   静态方法  类方法  普通特性
class FFF:
x='xxxxxdddd'
__x1='x11111111' #'__'就是成员修饰符,x1就是被修饰后的变量字段 私有的 只能在内部访问
def __init__(self):
print ('111')
self.__name='name222' #这个name依旧是那个私有的字段 依旧是不可被调用的
def fetch(self,bak):
print (bak)
print (FFF.__x1)


class Bar(FFF):
def fetch(self):
print (self.__name) #这个地方虽然是继承了父类,但是依旧不可用父类的__name这个私有字段,因为是私有的

bbb=Bar()
bbb.fetch()
print (FFF.x)
f=FFF()
输出————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

Traceback (most recent call last):
111
File "D:/Users/Administrator/PycharmProjects/untitled/venv/yingshe/chengyuanxiushifu.py", line 18, in <module>
bbb.fetch()
File "D:/Users/Administrator/PycharmProjects/untitled/venv/yingshe/chengyuanxiushifu.py", line 15, in fetch
print (self.__name)
AttributeError: 'Bar' object has no attribute '_Bar__name'

******************************************************************************************************************************************************************************************************************************************************************************************************

猜你喜欢

转载自www.cnblogs.com/beyondtring/p/9120348.html