看到如下的代码,不知道这两个类是什么关系?
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的关系是什么样?
这个是实例作为参数吗?
Ces deux classes n'ont rien à voir l'une avec l'autre (si vous devez dire qu'elles le font, vous pouvez seulement dire qu'elles héritent toutes les deux d'un objet, mais c'est comme vous dire que ce sont des classes en python, ce qui n'a aucun sens).
Python est sensible à la casse. La connexion et la connexion sont deux choses différentes. Même si elles ne sont pas sensibles à la casse, il y a un problème avec votre expression. L'un est le nom de la classe et l'autre est le nom du paramètre de fonction, qui ne peut pas être confondu.
Même si l'instance est utilisée comme paramètre, elle devrait l'être
var_name = Channel(Connetiton(var1,vqr2……),var2……)
Pour ce genre de question conceptuelle de base, tout tutoriel python aura des réponses correspondantes. Il n'est pas nécessaire de poser des questions supplémentaires dans la communauté (donc quelqu'un déduira des points pour vous...).
Les informations ci-dessus sont très détaillées, j'ajouterai donc quelques points ici.
Dans votre classe
.Channel
, les paramètres__init__()
deconnection
et la classeConnection
ci-dessus sont des choses complètement différentes. Vous devez contacter la relation entre eux :L'idée selon laquelle tout est objet est hors sujet et ne sera pas abordée ici.
Donc ici, ce sont deux choses complètement indépendantes.
Ce que vous comprenez comme "le paramètre d'une instance de
channel
doit être passé dans la fonctioninit
deconnection
" n'est pas tout à fait correct.Parce que je ne connais pas les exigences de votre code, donc juste à partir de ces deux classes, la méthode
Channel
dans la classe__init__()
a un paramètre nomméconnection
, qui ressemble à Il est en effet "possible" que vous ayez besoin de passer une instance de la classeConnection
. Les développeurs ne choisiront pas de noms au hasard lors de l'écriture du code, tout cela pour la commodité du développement et de la maintenance. Mais la situation réelle dépend toujours de vos exigences de code et de votre logique globale, c'est donc juste "possible".