python 类和实例
高洛峰
高洛峰 2017-04-17 17:41:42
0
2
437

看到如下的代码,不知道这两个类是什么关系?

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的关系是什么样?
这个是实例作为参数吗?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全員に返信(2)
伊谢尔伦
  • これら 2 つのクラスは互いに何の関係もありません (関係があると言うなら、どちらもオブジェクトから継承しているとしか言えませんが、これはそれらが Python のクラスであると言っているようなものです。それは無意味です)。

  • Python では大文字と小文字が区別されます。大文字と小文字が区別されない場合でも、接続と接続は別のものです。 1 つはクラスの名前で、もう 1 つは関数パラメータの名前であり、混同しないでください。

  • インスタンスをパラメータとして使用する場合でも、var_name = Channel(Connetiton(var1,vqr2……),var2……)

  • とする必要があります

この種の基本的な概念の質問については、どの Python チュートリアルにも対応する回答が用意されています。コミュニティで追加の質問をする必要はありません (そのため、誰かが減点してくれるでしょう...)。

いいねを押す +0
巴扎黑

上記の情報は非常に詳細なので、ここでいくつかの点を追加します。

Channel クラスでは、__init__()connection パラメーターと上記の Connection クラスはまったく別のものです。

間の関係を調べる必要があります。 リーリー

すべてがオブジェクトであるという考えは主題から外れているため、ここでは議論しません。

ここでは、これら 2 つは完全に独立したものです。

channel のインスタンスのパラメーターは、initconnection 関数で渡す必要がある」という理解は完全に正しいわけではありません。
コードの要件がわからないので、これら 2 つのクラスからだけ考えると、Channel クラスの __init__() メソッドには connection という名前のパラメーターがあります。 のように見えます。確かに、開発とメンテナンスの便宜のため、開発者がコードを記述するときに名前をランダムに選択することはありません。Connection クラスのインスタンスを渡す必要があることは「可能」です。ただし、実際の状況は、コード要件と全体的なロジックに依存するため、これは単に「可能性がある」というだけです。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート