簡體   English   中英

Python 面向對象編程的基本問題

[英]Basic question on Object Oriented programming in Python

我很難掌握類的方法中的變量,並且正在尋求對這些工作方式的解釋,以幫助我更好地理解它。

例如:

在時間類里面

def __init__(self, hour,minute, second)
    self.hour = hour
    self.minute = minute
    self.second = second

def print_time(self):
    print '%.2d:%.2d:%.2d' % (self.hour, self.minute, self.second)

time = Time(h,m,s)
time.print_time()

“自我”的變量變化在哪里發生? 為什么不將方法調用(看起來更直接)為:method(var1(subject), var2, var3, var4)? 而不是 subject.method(var2, var3, var4)? (我知道我對此的理解是不穩定的,如果我的任何條款不正確,我很高興收到更正)。

  1. 魔法。 確切地說,特定於 Python 的魔法; 其他語言可能(並且經常這樣做)選擇以不同的方式來做。

  2. 有可能。 在 Python 中,當objClass的實例時, Class.method(obj)obj.method()相同。 __init__()是一個特例。

你從哪里得到這個奇怪的代碼? 它沒有任何意義。

您應該查看“ 如何像計算機科學家一樣思考”,其中的代碼示例與您發布的內容類似,但它是正確的,並且解釋了變量范圍。 查看上述 URL 的第 15.6 節。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM