python鐨勮櫄鏂规硶鎬庝箞瀹炵幇
鍦≒ython涓紝鍙互閫氳繃鍦ㄧ埗绫讳腑瀹氫箟涓€涓柟娉曪紝骞跺湪鏂规硶鍓嶅姞涓?code>@abstractmethod瑁呴グ鍣ㄦ潵鍒涘缓涓€涓櫄鏂规硶銆傝櫄鏂规硶鏄竴绉嶉渶瑕佸瓙绫诲疄鐜扮殑鎶借薄鏂规硶锛岀埗绫讳笉鑳界洿鎺ヨ皟鐢ㄨ櫄鏂规硶銆?/p>
浠ヤ笅鏄竴涓ず渚嬶細
from abc import ABC, abstractmethod
class MyBaseClass(ABC):
@abstractmethod
def my_virtual_method(self):
pass
class MySubClass(MyBaseClass):
def my_virtual_method(self):
print("瀛愮被瀹炵幇浜嗚櫄鏂规硶")
# 鍒涘缓瀛愮被瀹炰緥骞惰皟鐢ㄨ櫄鏂规硶
obj = MySubClass()
obj.my_virtual_method()
鍦ㄤ笂杩扮ず渚嬩腑锛?code>MyBaseClass鏄竴涓寘鍚櫄鏂规硶鐨勬娊璞″熀绫汇€傚叾涓殑my_virtual_method鏂规硶琚姞涓婁簡@abstractmethod瑁呴グ鍣紝琛ㄧず杩欎釜鏂规硶鏄竴涓櫄鏂规硶锛岄渶瑕佸湪瀛愮被涓繘琛屽叿浣撳疄鐜般€?/p>
MySubClass缁ф壙鑷?code>MyBaseClass锛屽苟瀹炵幇浜嗚櫄鏂规硶my_virtual_method銆傞€氳繃鍒涘缓MySubClass鐨勫疄渚嬪苟璋冪敤my_virtual_method锛屽氨鍙互鎵ц瀛愮被涓殑鍏蜂綋瀹炵幇銆?/p>
濡傛灉鍦ㄥ瓙绫讳腑娌℃湁瀹炵幇铏氭柟娉曪紝閭d箞鍦ㄥ垱寤哄瓙绫诲疄渚嬪苟璋冪敤铏氭柟娉曟椂锛屼細寮曞彂TypeError寮傚父銆?/p>