iam は filedialog を使用して tkinter iam を使用してファイルをアップロードしています。私の目標は、牽引ボタンを持つことです。button1 は txt ファイルをアップロードするためのものです。 button2 は、ファイルを処理するためのものです。現在の機能設定を参照してください。
class procFile:
def uploadFile(self, filename):
self.filename = filename
def displayName(self):
return self.filename
def filePath(self):
print("%s" %self.filename)
def main():
upload = procFile()
upload.uploadFile(filedialog.askopenfilename(filetypes=(('txt', '*.txt'), ('All Files', '*.*'))))
upload.filePath()
メイン関数から変数にアクセスする別の関数を起動するには、別のボタンが必要です
あなたの質問は詳細を提供するのが退屈ですが、あなたの質問について私が理解した結果につながる 2 つの方法を次に示します。
クラス外の関数でクラス変数にアクセスする場合は、次のようにします。
class Class:
# do something
# example:
def __init__(self):
self.var = 2
print(self.var)
def outsideFunc():
# operations you want to do
# example:
print(a.var * 3)
結果
>> a = Class()
2
>> outsideFunc()
6
outsideFunc()
プログラム中にいつでも定義できることに注意してください。ただし、outsideFunc()
クラスが初期化された後にのみ呼び出すことができます。
これは、クラスが初期化された後にのみ定義されるfilepath
クラスのインスタンスであるためですprocfile
。初期化されたクラスの後のピリオドの後に、関数Class.func()
、変数、Class.var
またはネストされたクラスなどのさまざまなオブジェクトを続けることができます。Class.subClass
クラス内のクラス変数にアクセスする場合は、次のようにします。
class Class:
# do something
# example:
def __init__(self):
self.var = 4
print(self.var)
def func(self):
# operations you want to do
# example
print(self.var + 5)
結果
>> b = Class()
4
>> b.func()
9
self.var
クラス内で変数にアクセスする前に行ったことと同じことを行うだけです。
方法 1では、外部関数でクラス変数を呼び出すときに、クラスの初期化に使用した変数名と同じにする必要があります。したがって、実行a = Class()
すると、初期化されたクラスを参照するクラス外の関数はa.object
、オブジェクトが関数、変数、またはサブクラスになる可能性がある場所で実行する必要があります。
方法 2も同じことが必要です。ただし、クラス内の関数がその変数の 1 つを参照している場合はself.object
、オブジェクトを関数、変数、またはサブクラスにすることができる場所を使用する必要があります。
どちらの場合も、最初にクラスを開始する必要がvarName = className()
あります。varName は、クラスを参照するために使用される単なる変数です。その後、以前と同じようにvarName.object
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加