[英]How do I explicitly specify that a variable is an instance of a particular class?
共有三類(A、B、C)。 A 類是 master,處理 B 類和 C 類的一些數據。 B 類處理 C 類的數據,C 類的實例通過 A 傳遞給 B。
示例代碼如下 ()
一個.py
from b import SomeB
from c import SomeC
class SomeA(object):
def __init__(self):
self.object_c = SomeC()
self.object_b = SomeB(self.object_c)
self.some_work_with_obj_c_data()
self.some_work_with_obj_b_data()
def some_work_with_obj_c_data(self):
self.object_c.some_var_for_a += 1
print(self.object_c.some_var_for_a)
def some_work_with_obj_b_data(self):
self.object_b.some_var_for_a += 1
print(self.object_b.some_var_for_a)
if __name__ == "__main__":
object_a = SomeA()
b.py
class SomeB(object):
def __init__(self, object_c_from_a):
self.some_var_for_a = 5678
self.object_c_from_a = object_c_from_a # an instance of the SomeC class from C.py
self.some_work_with_obj_c_data()
def some_work_with_obj_c_data(self):
self.object_c_from_a.some_var_for_b += 1
print(self.object_c_from_a.some_var_for_b)
py
class SomeC(object):
def __init__(self):
self.some_var_for_b = 1234
self.some_var_for_a = 4321
在實際情況下,它是兩個 GUI 窗口(A 和 B),以及一些數據處理程序 (C)。
本質上,B 類沒有明確指定我們正在處理的數據類型(特別是如果您沒有用注釋指定)。 IDE 中也沒有自動完成代碼(例如 PyCharm)。
是否有一種機制可以指定變量是對特定類的實例的引用? 或者有一個更全局的架構問題,它原則上不應該存在?
在 python 中,你沒有靜態類型,這正是你想要的。 相反,變量是動態類型的。
您的問題的關鍵解決方案是給變量命名。 例如,如果變量名為 amount_of_songs,您可以推斷它是一個數字。 其他類型也一樣。
python中使用的主要方法稱為duck typing :
鴨子類型是一個與動態類型相關的概念,其中對象的類型或類不如它定義的方法重要。 當您使用鴨子類型時,您根本不檢查類型。 相反,您檢查給定方法或屬性的存在。
編輯:也許我錯過了這個問題:您只想向函數添加類型提示嗎? 那么這將是輸入 python 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.