0

私は基本クラス名Botを持っています。ボットは、IRC(d'oh)という名前の別のクラスを介してIRCへの接続を開始します。

IRCクラスには、IRCサーバーと対話するために必要なすべての機能が含まれています(ほんの数例を挙げると、 joinpartsayquit )。

名前付きボットの属性にはirc、ボットが開始したIRCクラスのインスタンスが含まれています。

Commandという名前の別のクラスは、IRCサーバー上のユーザーが使用できるすべてのコマンドの基本クラスとして機能します。コマンドには実際にはボットインスタンス用の引数がありますが、すべてのコマンドがCommandクラスから継承されているため、ボットインスタンスをそこに取得する方法がわかりません。また、追加することもできません。すべての.にsuper()__init__

1つの接続がコマンドを実行するたびに新しいIRC接続を開始せずに、コマンドで使用されるIRCクラスの関数を取得するにはどうすればよいですか(そうです、これは私に起こっただけです!)?

4

1 に答える 1

0

あるクラスの関数を他の相互作用なしで別のクラスから実行したい場合、必要なのは、実行したいメソッドのクラスのインスタンスを保持する変数だけです。クラス外でメソッドを実行するのと同じように、クラス内でメソッドを実行します (クラスが独自のメソッドの 1 つを実行している場合を除きます)。

class.method()

メソッドを実行するには問題なく動作するはずです

于 2013-11-18T00:19:28.563 に答える