看到如下的代码,不知道这两个类是什么关系?
class Connetiton(object):
def channel(self,on_open_callback,channel_number=None):
self._channels[channel_number]=self._create_channel(channel_number,on_open_callback)
def _create_channel(self,channel_number,on_open_callback):
return channel.Channel(self,channel_number,on_open_callback)
class Channel(object):
def __init__(self,connection,channel_number,on_open_callback=None):
self.connection=connection
在connection 类里会调用到Channel的类去channel
那么那个connection 和channel的关系是什么样?
这个是实例作为参数吗?
伊谢尔伦2017-04-17 17:43:42
這兩個類別沒什麼關係(如果非要說有,就只能說他們都繼承自object,可這就像告訴你它們是python中的類別一樣,沒啥意思)。
python是區分大小寫的,Connetiton和connection是兩回事,即使不區分大小寫,你的表述也是有問題的。一個是類別的名稱,一個是函數參數的名稱,不可混為一談。
即使是以實例作為參數,也應該是var_name = Channel(Connetiton(var1,vqr2……),var2……)
這種基本概念的問題,任意的python教程都會有對應的答案,不需要到社區額外提問(所以有人給你扣分了…)。
巴扎黑2017-04-17 17:43:42
樓上說的很詳細了,我這裡補充一點。
你的Channel
類別中,__init__()
的connection
參數,和上面Connection
類,是完全兩碼事,硬要聯繫它們兩個之間的關係:Channel
类中,__init__()
的connection
参数,和上面Connection
类,是完全两码事,硬要联系它们两个之间的关系:
1.它们名字一样(除了大小写)
2.它们都是对象
万物皆对象这个是题外话了,这里不谈。
所以在这里,它们两个是完全独立的两个东西。
你理解的“在channel
的init
函数中需要传入一个connection
的实例的参数”,不完全正确。
因为不知道你代码的需求,所以单从这两个类来看,Channel
类中的__init__()
方法有一个名叫connection
的参数,它看起来确实“有可能”需要传入Connection
rrreee
萬物皆對象這個是題外話了,這裡不談。
所以在這裡,它們兩個是完全獨立的兩個東西。
channel
的init
函數中需要傳入一個connection
的實例的參數”,不完全正確。 Channel
類別中的__init__()
方法有一個名叫 connection
的參數,它#🎜🎜#看起來#🎜🎜#確實「有可能」需要傳入Connection
類別的實例,開發人員在寫程式碼的時候名字不會亂取,都是為了方便開發維護。但#🎜🎜#真實情況#🎜🎜#還是要看你#🎜🎜#程式碼的需求和整體邏輯#🎜🎜#,因此這裡只是「有可能」。 #🎜🎜#