cari

Rumah  >  Soal Jawab  >  teks badan

python 类和实例

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

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

高洛峰高洛峰2887 hari yang lalu441

membalas semua(2)saya akan balas

  • 伊谢尔伦

    伊谢尔伦2017-04-17 17:43:42

    • Kedua-dua kelas ini tiada kaitan antara satu sama lain (jika anda perlu mengatakan bahawa mereka ada, anda hanya boleh mengatakan bahawa kedua-duanya mewarisi objek, tetapi ini seperti memberitahu anda bahawa mereka adalah kelas dalam python, yang tidak bermakna).

    • Python sensitif huruf besar dan kecil Connectiton dan sambungan adalah dua perkara yang berbeza Walaupun ia tidak sensitif huruf besar-besaran, ungkapan anda bermasalah. Satu ialah nama kelas, dan satu lagi ialah nama parameter fungsi, yang tidak boleh dikelirukan.

    • Walaupun kejadian itu digunakan sebagai parameter, ia sepatutnya var_name = Channel(Connetiton(var1,vqr2……),var2……)

    Untuk soalan konsep asas seperti ini, mana-mana tutorial ular sawa akan mempunyai jawapan yang sepadan. Tidak perlu bertanya soalan tambahan dalam komuniti (jadi seseorang akan memotong mata untuk anda...).

    balas
    0
  • 巴扎黑

    巴扎黑2017-04-17 17:43:42

    Maklumat di atas sangat terperinci, jadi saya akan menambah beberapa perkara di sini.

    Dalam kelas Channel anda, parameter __init__() bagi kelas connection dan Connection di atas adalah perkara yang sama sekali berbeza Anda perlu menghubungi hubungan antara mereka:

    1.它们名字一样(除了大小写)
    2.它们都是对象
    

    Idea bahawa segala-galanya adalah objek adalah di luar topik dan tidak akan dibincangkan di sini.

    Jadi di sini, ia adalah dua perkara yang bebas sepenuhnya.

    Apa yang anda fahami sebagai "parameter tika channel perlu dihantar dalam fungsi init connection" adalah tidak betul sepenuhnya.
    Oleh kerana saya tidak tahu keperluan kod anda, jadi hanya daripada dua kelas ini, kaedah Channel dalam kelas __init__() mempunyai parameter bernama connection, yang kelihatan seperti Memang "kemungkinan" anda perlu lulus dalam contoh kelas Connection Pembangun tidak akan memilih nama secara rawak semasa menulis kod, semuanya untuk kemudahan pembangunan dan penyelenggaraan. Tetapi keadaan sebenar masih bergantung pada keperluan kod dan logik keseluruhan anda, jadi ini hanya "mungkin".

    balas
    0
  • Batalbalas