成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

用 Classmethod 自定義創(chuàng)建對(duì)象的方式

開發(fā) 前端
傳入一個(gè) name,初始化一個(gè) Pet 對(duì)象,如果你覺得這太單調(diào)了,想實(shí)現(xiàn)非常個(gè)性的初始化方法,那么可以修改 __init__ 函數(shù)的代碼。

這里分享一下 classmethod 的實(shí)用小技巧。

classmethod 是一個(gè)非常實(shí)用的裝飾器,可以用它來改變類創(chuàng)建對(duì)象的形為,比如說這樣一段代碼:

class Pet:
def __init__(self, name):
self.name = name

傳入一個(gè) name,初始化一個(gè) Pet 對(duì)象,如果你覺得這太單調(diào)了,想實(shí)現(xiàn)非常個(gè)性的初始化方法,那么可以修改 __init__ 函數(shù)的代碼。

但是,有些情況你不能修改 __init__? 函數(shù)的代碼,比如代碼已經(jīng)運(yùn)行很久了,有很多地方調(diào)用了 Pet 的 __init__ 方法,如果直接修改,可能會(huì)產(chǎn)生很多問題。

這時(shí)候就可以借助于裝飾器 classmethod,自定義對(duì)象的創(chuàng)建方式:

import random

class Pet:
def __init__(self, name):
self.name = name

@classmethod
def create(cls):
number = random.randint(100_000,999_999)
return cls(f"Pet_{number}")

然后,可以這樣調(diào)用,輸出結(jié)果在注釋里。

dog = Pet("Dog")
print(dog.name)
# Dog
pet = Pet.create()
print(pet.name)
# Pet_444383
print(isinstance(dog, Pet))
# True
print(isinstance(pet, Pet))
# True

此外,標(biāo)準(zhǔn)庫(kù)里也有很多使用 classmethod 的例子,比如 dict.fromkeys 就是一個(gè)例子:

>>> dict.fromkeys("ABC", 0)
{'A': 0, 'B': 0, 'C': 0}
>>> dict.fromkeys(["hello","world"])
{'hello': None, 'world': None}

責(zé)任編輯:武曉燕 來源: Python七號(hào)
相關(guān)推薦

2015-02-12 15:33:43

微信SDK

2010-10-20 16:07:48

SQL用戶自定義角色

2022-05-07 10:22:32

JavaScript自定義前端

2013-05-02 14:08:18

2022-04-14 06:20:25

GNOME桌面應(yīng)用

2009-11-05 10:38:05

Visual Stud

2009-11-12 16:14:28

ADO.NET自定義對(duì)

2021-06-17 06:52:37

C#自定義異常

2021-07-15 16:41:21

Swift查詢函數(shù)

2010-08-03 16:13:01

FlexBuilder

2012-11-19 11:07:42

IBMdw

2022-08-04 18:30:59

DockerfileDocker 鏡像Linux

2024-09-11 14:46:48

C#旋轉(zhuǎn)按鈕

2010-01-18 15:43:35

VB.NET自定義屬性

2015-01-14 15:06:48

定義相機(jī)

2009-07-20 13:47:08

iBATIS.NET字

2023-05-28 13:11:43

Plotly指標(biāo)圖表

2019-12-02 21:29:45

Keras神經(jīng)網(wǎng)絡(luò)TensorFlow

2021-03-29 00:02:10

C#Attribute元素

2015-02-12 15:38:26

微信SDK
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 日韩欧美字幕 | 欧美一级视频在线观看 | 亚洲精品一区二区冲田杏梨 | 蜜臀久久99精品久久久久野外 | 欧美a免费| 国产精品免费大片 | 在线观看不卡av | 午夜手机在线视频 | 九九久久精品视频 | 搞黄网站在线观看 | 久久久91精品国产一区二区精品 | 欧美久久久久久久久 | 久久91| 欧美成人性生活 | 99精品视频在线 | 日韩a | 综合九九| 狠狠入ady亚洲精品经典电影 | 亚洲国产精品网站 | 夜夜爽99久久国产综合精品女不卡 | 一区二区三区四区av | av中文字幕在线 | 久久伊人精品 | 亚洲性人人天天夜夜摸 | 亚洲狠狠爱 | 波波电影院一区二区三区 | 国产在线精品一区二区三区 | 国产精品久久久久久久久久免费看 | 国产精品一区三区 | 日日夜夜影院 | 成人午夜性成交 | 国产精品久久 | 99国产精品久久久久久久 | 农村真人裸体丰满少妇毛片 | 国产高清精品一区二区三区 | 日韩国产精品一区二区三区 | 国产视频一区二区 | 综合久久综合久久 | 亚洲欧美少妇 | 国产精品成人久久久久 | 欧美亚洲国产一区二区三区 |