浅谈类及对象的字段和方法-创新互联
类:
为双桥等地区用户提供了全套网页设计制作服务,及双桥网站建设行业解决方案。主营业务为做网站、成都网站设计、双桥网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!类是某种类型集合的描述。
我们把拥有相同属性的事务叫做类,里面封装了相同的方法。比如人,汽车等。
对象:
对象是由类创建的实例。对象的三个特性:身份,类型,值,在这里不做描述。
类的私有属性及访问方式:
外部想要访问类的私有属性有两种方式:
1:类内创建一个函数,来返回私有属性
2:类特性
对象的私有字段:
创建一个类如下:
class Province: memo = "中国的23个省之一" #是类的字段,是属于类的,不属于对象,这个属于类的静态字段,属于类 def __init__(self,name,captial,leader,flag): self.Name=name #通过self创建的字段叫做动态字段,不像静态字段,动态字段属于对象 self.Captial=captial self.Leader=leader self.__happy = flag #创建对象的私有字段
XZ=Province("西藏","乌鲁木齐","×××",True) #实例化类,就是创建了个对象 print XZ.Captial print XZ.__happy
执行结果如下:
Traceback (most recent call last): File "F:\lvsir\workspace\pystudy-oldboy\oop\privat_filld.py", line 47, in乌鲁木齐 print XZ.__happy AttributeError: Province instance has no attribute '__happy'
此例可见,私有字段是外部不可直接访问的;外部若想访问对象的私有字段,可以再在类中创建一个函数,来显示私有字段,代码如下:
class Province: ... ... def show(self): #在类中创建一个查看实例私有字段的方法 return self.__happy
XZ=Province("西藏","乌鲁木齐","×××",True) print XZ.show() #调用show方法
执行结果如下:
True
还是上面的例子,添加私有方法代码如下:
class Province: ... ... def __Hello(self): #定义私有方法,直接使用类实例是访问不到的,在类中可以访问的到 print "Hello,world" def access_hello(self): #创建一个访问私有方法的函数 print self.__Hello()
XZ=Province("西藏","乌鲁木齐","×××",True) print XZ.__Hello
直接访问对象的私有方法,执行结果如下:
Traceback (most recent call last): File "F:\lvsir\workspace\pystudy-oldboy\oop\privat_filld.py", line 49, inprint XZ.__Hello AttributeError: Province instance has no attribute '__Hello'
使用第一种方法访问私有方法
print XZ.access_hello() #调用类实例的访问私有方法的函数
Hello,world
由上可见,类的私有方法对象是不能直接访问的,也可以通过类内可访问私有方法的方法间接访问
使用类特性访问私有方法:
class Province: ... ... @property #创建类特性,返回私有方法 def Hello(self): return self.__Hello()
XZ=Province("西藏","乌鲁木齐","×××",True) print XZ.Hello #直接调用类特性,以字段的方式访问,不需要带括号
执行结果如下:
Hello,world
类的私有字段的只读和只写
我们创建一个新类,代码如下:
class Province1: def __init__(self,name,flag): self.name=name self.__Hello = flag @property #只读的私有字段,是可以访问的,但是不能修改 def Heloo(self): return self.__Hello
TW = Province1('台湾',True) print TW.Heloo TW.Heloo=False print TW.Heloo
执行结果如下:
True Traceback (most recent call last): File "F:\lvsir\workspace\pystudy-oldboy\oop\privat_filld.py", line 76, inTW.Heloo=False AttributeError: can't set attribute
是可以读到私有字段的,但是不能修改
下面添加代码,是私有字段可以访问并且可写,前提是类要继承object,代码如下:
class Province1(object): def __init__(self,name,flag): self.name=name self.__Hello = flag @property #只读的私有字段,是可以访问的,但是不能修改 def Heloo(self): return self.__Hello @Heloo.setter #可改的私有字段,可以访问,也可以修改,可以的私有字段的类要继承object def Heloo(self,value): self.__Hello=value
TW = Province1('台湾',True) print TW.Heloo TW.Heloo=False print TW.Heloo
执行结果如下:
True False
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
名称栏目:浅谈类及对象的字段和方法-创新互联
文章分享:http://hbruida.cn/article/pjhpc.html