Rumah > Soal Jawab > teks badan
看到如下的代码,不知道这两个类是什么关系?
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
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...).
巴扎黑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".