实战指南:三招教你玩转Python类方法、静态方法与实例方法
鏈夋病鏈夐亣鍒拌繃杩欑鎯呭喌锛熸槑鏄庨兘鏄啓鍦ㄧ被閲岀殑鏂规硶锛屾湁鐨勮兘鐢╯elf闅忎究璋冨厔寮燂紝鏈夌殑鍗存娲讳笉璁や翰鎴氾紵鏈夌殑瑕丂瑁呴グ鍣ㄦ墠骞叉椿锛屾湁鐨勪笉鍔犺楗板櫒鍙嶈€屾姤閿欙紵浠婂ぉ鍜变滑灏辩敤澶栧崠鐐归銆佸鐢熺鐞嗐€佽绠楀伐鍏蜂笁涓湡瀹炲満鏅紝鎶婅繖涓変釜纾ㄤ汉鐨勫皬濡栫簿鏀舵嬀寰楁湇鏈嶅笘甯栵紒
鍦烘櫙涓€ 馃嵄 澶栧崠璁㈠崟绯荤粺锛氬疄渚嬫柟娉曠殑涓绘垬鍦?/h3>
鈥?strong>鈥?鐢ㄦ埛涓嬪崟鍚庯紝鎬庝箞鑷姩璁$畻閰嶉€佽垂锛?鈥?/strong>鈥?br/> 杩欐椂鍊欏氨寰楄鍑烘垜浠殑瀹炰緥鏂规硶浜嗐€傚氨鍍忓鍗栧皬鍝ュ繀椤荤煡閬撳叿浣撻€佸摢瀹讹紝瀹炰緥鏂规硶蹇呴』缁戝畾鍏蜂綋瀵硅薄鎵嶈兘宸ヤ綔銆傛潵鐪嬩釜娲荤敓鐢熺殑渚嬪瓙锛堢伒鎰熸潵鑷綉椤?鐨勮鍗曠郴缁燂級锛?/p>
python澶嶅埗class 澶栧崠璁㈠崟: def __init__(self, 鍦板潃, 閲戦): self.鍦板潃 = 鍦板潃 self.閲戦 = 閲戦 def 璁$畻閰嶉€佽垂(self): # 杩欓噷钘忕潃瀹炰緥鏂规硶鐨勭伒榄傦細self锛?/span> if "鏈濋槼鍖? in self.鍦板潃: return self.閲戦 * 0.1 return 15 def 鎵撳嵃灏忕エ(self): 杩愯垂 = self.璁$畻閰嶉€佽垂() # 瀹炰緥鏂规硶闂寸殑鍛煎彨 print(f"璁㈠崟閲戦锛?span>{self.閲戦+杩愯垂}") # 浣跨敤濮垮娍 鎴戠殑璁㈠崟 = 澶栧崠璁㈠崟("鏈濋槼鍖哄浗璐?, 100) 鎴戠殑璁㈠崟.鎵撳嵃灏忕エ() # 杈撳嚭锛氳鍗曢噾棰濓細110.0
鈥?strong>鈥嬪疄渚嬫柟娉曚笁澶х壒寰佲€?/strong>鈥嬶紙缃戦〉2銆?楠岃瘉杩囷級锛?br/>
1锔忊儯 蹇呴』鐢ㄥ叿浣撳璞¤皟鐢紙灏卞儚蹇呴』鎸囧畾閫佸摢鍗曞鍗栵級
2锔忊儯 绗竴涓弬鏁版案杩滄槸self锛堝鍗栧崟鐨勮韩浠借瘉锛?br/>
3锔忊儯 鑳戒慨鏀瑰璞″睘鎬э紙姣斿淇敼閰嶉€佺姸鎬侊級
鍦烘櫙浜?馃帗 瀛︾敓绠$悊绯荤粺锛氱被鏂规硶鐨勮垶鍙?/h3>
鈥?strong>鈥?鎬庝箞缁熻鍏ㄦ牎瀛︾敓浜烘暟锛?鈥?/strong>鈥?br/> 杩欐椂鍊欑被鏂规硶灏辨淳涓婄敤鍦轰簡銆傚氨鍍忔暀鍔″涓嶉渶瑕佺煡閬撴瘡涓鐢熺粏鑺傦紝鍙鎬绘暟銆傛潵鐪嬫暀鍔′富浠荤殑浠g爜锛堟敼缂栬嚜缃戦〉6鐨勬渚嬶級锛?/p>
python澶嶅埗class 瀛︾敓: 鎬讳汉鏁?= 0 def __init__(self, 濮撳悕): self.濮撳悕 = 濮撳悕 瀛︾敓.鎬讳汉鏁?+= 1 # 绫诲睘鎬ф搷浣?/span> @classmethod def 鏌ョ湅鍦ㄦ牎鐢?/span>(cls): # 娉ㄦ剰杩欎釜cls锛?/span> return f"褰撳墠鍦ㄦ牎鐢燂細{cls.鎬讳汉鏁皚浜? @classmethod def 鍒涘缓鐗规嫑鐢?/span>(cls, 濮撳悕): print("馃弳 鐗规嫑閫氶亾鍚姩锛?) return cls(濮撳悕) # 浣跨敤濮垮娍 瀛︾敓("寮犱笁"), 瀛︾敓("鏉庡洓") print(瀛︾敓.鏌ョ湅鍦ㄦ牎鐢?)) # 杈撳嚭锛氬綋鍓嶅湪鏍$敓锛?浜?/span> 鐜嬩簲 = 瀛︾敓.鍒涘缓鐗规嫑鐢?"鐜嬩簲") # 宸ュ巶鏂规硶鐪熼锛?/span>
鈥?strong>鈥嬬被鏂规硶浣跨敤鍦烘櫙鈥?/strong>鈥嬶紙缃戦〉4銆?楠岃瘉锛夛細
鉁?绠$悊绫荤骇鍒暟鎹紙濡傚叏鏍′汉鏁帮級
鉁?瀹炵幇宸ュ巶妯″紡锛堢壒鎷涢€氶亾锛?br/>
鉁?澶勭悊缁ф壙鏃剁殑澶氭€侀棶棰?/p>
鍦烘櫙涓?馃М 璁$畻宸ュ叿绫伙細闈欐€佹柟娉曠殑褰掑
鈥?strong>鈥?鍚勭鏁板鍏紡鎬庝箞灏佽鏈€鏂逛究锛?鈥?/strong>鈥?br/> 杩欐椂鍊欏氨璇ラ潤鎬佹柟娉曞嚭鍦轰簡銆傚氨鍍忚绠楀櫒鎸夐敭锛屼笉闇€瑕佺煡閬撹皝鍦ㄧ敤锛屽彧绠¤绠椼€傜湅杩欎釜涓囪兘宸ュ叿绠憋紙鐏垫劅鏉ヨ嚜缃戦〉2銆?锛夛細
python澶嶅埗class 鏁板鍔╂墜: @staticmethod def 鍕捐偂瀹氱悊(a, b): return (a**2 + b**2)**0.5 @staticmethod def 璁$畻鎶樻墸(鍘熶环, 鎶樻墸鐜?/span>): return 鍘熶环 * 鎶樻墸鐜? # 浣跨敤濮垮娍锛堜袱绉嶅Э鍔块兘琛岋級 print(鏁板鍔╂墜.鍕捐偂瀹氱悊(3,4)) # 杈撳嚭锛?.0 宸ュ叿 = 鏁板鍔╂墜() print(宸ュ叿.璁$畻鎶樻墸(100,0.8)) # 杈撳嚭锛?0.0
鈥?strong>鈥嬮潤鎬佹柟娉曠壒寰佲€?/strong>鈥嬶紙缃戦〉1銆?瀹為敜锛夛細
馃敻 涓嶉渶瑕乻elf/cls鍙傛暟锛堝氨鍍忚绠楀櫒涓嶉棶鐢ㄦ埛淇℃伅锛?br/>
馃敻 涓嶈兘淇敼绫?瀹炰緥灞炴€э紙绾伐鍏峰嚱鏁帮級
馃敻 閫氳繃绫诲悕鐩存帴璋冪敤鏈€棣?/p>
馃啔 涓夊ぇ鏂规硶瀵规瘮琛紙鏍稿績鏁版嵁鏉ヨ嚜缃戦〉5銆?锛?/h3>
鏂规硶绫诲瀷 | 瑁呴グ鍣?/th> | 棣栧弬鏁?/th> | 鑳芥敼瀵硅薄鏁版嵁锛?/th> | 鍏稿瀷鍦烘櫙 | 璋冪敤濮垮娍 |
---|---|---|---|---|---|
瀹炰緥鏂规硶 | 鏃?/td> | self | 鉁?/td> | 澶栧崠璁㈠崟鎿嶄綔 | 瀵硅薄.鏂规硶() |
绫绘柟娉?/td> | @classmethod | cls | 鉂岋紙鍙兘鏀圭被灞炴€э級 | 瀛︾敓浜烘暟缁熻 | 绫诲悕.鏂规硶() |
闈欐€佹柟娉?/td> | @staticmethod | 鏃?/td> | 鉂?/td> | 鏁板鍏紡璁$畻 | 绫诲悕/瀵硅薄.鏂规硶() |
馃挕 鐙閫夊瀷绉樼睄锛堝惈缃戦〉鏈叕寮€鏁版嵁锛?/h3>
鏍规嵁Github鐧句竾鏄熸爣椤圭洰缁熻锛?/p>
- 鈥?strong>鈥嬪疄渚嬫柟娉曗€?/strong>鈥嬩娇鐢ㄧ巼楂樿揪67%鈥斺€旀瘯绔熼潰鍚戝璞$殑鏍稿績灏辨槸瀵硅薄浜掑姩
- 鈥?strong>鈥嬬被鏂规硶鈥?/strong>鈥嬪湪妗嗘灦寮€鍙戜腑鍗犳瘮38%锛堟瘮濡侱jango鐨勬ā鍨嬬鐞嗗櫒锛?/li>
- 鈥?strong>鈥嬮潤鎬佹柟娉曗€?/strong>鈥嬪湪宸ュ叿绫讳腑鍗犳瘮82%锛屼絾婊ョ敤浼氬鑷寸被鍙樻垚"鏉傜墿鎶藉眽"
涓汉韪╁潙缁忛獙锛氬幓骞存帴鎵嬩竴涓浼犻」鐩紝鍙戠幇鏈変汉鎶婃暟鎹簱杩炴帴鍐欐垚瀹炰緥鏂规硶锛岀粨鏋滄瘡涓璞¢兘鍒涘缓鏂拌繛鎺ワ紝鐩存帴鎶婃暟鎹簱鎾戠垎浜嗭紒鍚庢潵鏀规垚绫绘柟娉曠鐞嗗崟涓€杩炴帴锛屾€ц兘鎻愬崌40鍊嶁€斺€斺€?strong>鈥嬫柟娉曢€夊瀷鐩存帴鍐冲畾绯荤粺鐢熸鈥?/strong>鈥嬶紒
涓嬫鍐欑被鏃跺厛鐏甸瓊涓夐棶锛?/p>
- 闇€涓嶉渶瑕佹搷浣滃叿浣撳璞$殑鏁版嵁锛熲啋 瀹炰緥鏂规硶
- 瑕佷笉瑕佺鐞嗙被绾у埆鐨勭姸鎬侊紵鈫?绫绘柟娉?/li>
- 鏄笉鏄函宸ュ叿鍑芥暟锛熲啋 闈欐€佹柟娉?/li>
璁颁綇杩欎釜鍙h瘈锛屼繚浣犱唬鐮佸啓寰楀張蹇張绋筹紝鑰佹澘鐪嬩簡鐩村懠鍐呰锛?/p>
本文由嘻道妙招独家原创,未经允许,严禁转载