日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python特性、属性以及私有化

發(fā)布時間:2023/12/18 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python特性、属性以及私有化 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?

python中特性attribute

  • 特性是對象內(nèi)部的變量

  • 對象的狀態(tài)由它的特性來描述,對象的方法可以改變它的特性

  • 可以直接從對象外部訪問特性


特性示例:

class Person:name = 'yoda' # 類中特性def get_name(self): # 通過訪問器方法訪問特性return self.namedef set_name(self, value): # 通過訪問器方法改變特性self.name = value運行: A1 = Person() A1.name # 直接從外部訪問特性 yoda A1.name = 'master' # 直接從外部改變特性默認情況下,python支持從外部對特性進行操作,但它破壞了類的封裝原則,要從外部對象無法訪問,應(yīng)該使用私有特性。

?

python中私有化特性

為了讓外部無法訪問特性或方法,只要在名字前面加上雙下劃線即可。

特性私有化示例:

class Secret:__name = 'yoda' # 加上雙下劃線私有化特性def get_name(self): return self.__namedef __secret(self): # 私有化方法print "can't find"def access(self):return self.__secret() # 訪問器訪問私有方法A2 = Secret() A2.__name # 訪問不到特性! A2._Secret__name # 還是可以從外部訪問特性 yoda- python本質(zhì)上并不完全支持私有化,只不過是將名字進行改變了

?

python中使用屬性(property)對特性進行訪問和設(shè)置

  • 有一些面向?qū)ο笳Z言支持私有特性,這些特性無法從外部直接訪問,需要編寫getter和setter方法對這些特性進行操作

  • python不需要getter和seter方法,因為python中所有特性都是公開的,如果不放心使用直接訪問對象的特性,可以為對象編寫setter和getter方法,但是更好的解決辦法是使用屬性(property)

  • python隱藏訪問器的方法,讓所有特性看起來一樣,這種通過訪問器定義的特性被稱為屬性

屬性使用示例

# 第一種方法使用屬性 class foo:def __init__(self):self.name = 'yoda'self.work = 'master'def get_person(self):return self.name,self.workdef set_person(self,value):self.name,self.work = valueperson = property(get_person,set_person)運行如下: A3 = foo() A3.person ('yoda', 'master') A3.person = 'skylaer','programer' A3.person ('skylaer','programer')# 第二種方法使用屬性 class foo:def __init__(self):self.name = 'yoda'self.work = 'master'@propertydef person(self):return self.name,self.work@person.setter # 如果不指定stter屬性,那么無法從類的外部對它的值進行設(shè)置,這對于只讀特性非常有用def person(self,value):self.name,self.work = value ?
  • property()第一個參數(shù)是getter方法,第二個參數(shù)是setter方法

  • property函數(shù)可以用0,1,2,3或者4個參數(shù)來調(diào)用,如果沒有參數(shù),產(chǎn)生的屬性既不可讀,也不可寫,這四個參數(shù)分別叫做fget,fset,fel,fdoc,如果想要一個屬性是只寫的,并且有一個文檔字符串,能使用他們作為關(guān)鍵字參數(shù)

轉(zhuǎn)載于:https://www.cnblogs.com/starsea/p/5429222.html

總結(jié)

以上是生活随笔為你收集整理的python特性、属性以及私有化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。