1.使用描述符+類的裝飾器
classtyped:
def__init__
(self,key,type):
self.key=key
self.type=type
def__get__
(self, instance, owner):
return instance.__dict__
[self.key]
def__set__
(self, instance, value):
ifnot
isinstance(value,self.type):
raise typeerror("
%s 不是%s
" %(value,self.type))
instance.
__dict__[self.key]=value
def__delete__
(self, instance):
instance.
__dict__
.pop(self.key)
def test(**kwargs):
deftest1(func):
for i,o in
kwargs.items():
setattr(func,i,typed(i,o))
return
func
return
test1
@test(name=str)
class
people:
#name=typed("name",str)#要設定型別 通過設定後可以不用這麼麻煩可以直接修飾
#age=typed("age",int)
def__init__
(self,name,age,salary):
self.name=name
self.age=age
self.salary=salary
s=people("
rxy",123,123)
(s.name)
print(people.__dict__)
2.使用property的補充
classpeople:
def__init__
(self,name):
self.name=name #
例項化就觸發property
@property
defname(self):
#return self.name #無限遞迴
print('
get------>')
return
self.douniwan
@name.setter
defname(self,value):
print('
set------>')
ifnot
isinstance(value,str):
raise typeerror('
必須是字串型別')
self.douniwan=value
@name.deleter
defname(self):
print('
delete------>')
delself.douniwan
p1=people('
alex
') #
self.name實際是存放到self.douniwan裡
p1.name="1"
print(p1.__dict__
)print()
vue vue中引入echarts的兩種方式
1.安裝echarts依賴 npm install echarts s 2.建立圖表 a 全域性引入 main.js頁面 import echarts from echarts vue.prototype.echarts echartshello.vue頁面 b 按需引入 上面全域性引入會將所有的e...
Redhat nis client兩種接入方式
redhat nis client兩種接入方式 在redhat上nis client有兩種方式接入nis伺服器 etc nsswitch.conf和system config authentication 通過 etc nsswitch.conf的方式使用者只能通過yppasswd進行修改密碼且無法...
python threading 兩種建立方式
作用 建立在thread模組之上,可以更容易地管理多個執行執行緒。通過使用執行緒,程式可以在同乙個程序空間併發地執行多個操作。threading模組建立在thread的底層特性基礎上,可以更容易地完成執行緒處理。1 呼叫函式 要使用thread,最簡單的方法就是用乙個目標函式例項化乙個thread物...