私は .self で python を教えられており、作成しようとしている非常に単純なクラスについて助けが必要です。私はそれを使用するたびに新しいクラス変数を宣言する必要なしに、さまざまなモジュールで InitLog クラスの外部のすべてを使用したいと思います (たとえば、クラスを使用したいすべての (多数の) モジュールで betty = Initlog を宣言したくありません.. .これを行う方法はありますか?事前に感謝します
import os
import sys
import pdb
import fileinput
import Tools
class InitLog:
def __init__(self):
pass
def Update(self):
self.sound = sound
self.engine = engine
def save(self):
self.summery = 'sound: ' + self.sound + '\n'
self.summery += 'engine: ' + self.engine + '\n'
#lock for use within threads
Tools.Locked.State.LogAddress = False
while Tools.Locked.State.LogAddress == True: pass
Tools.Locked.State.LogAddress = True
try: os.remove(path + '/' + self.dest + '/init.log')
except: pass
path = os.getcwd()
if not os.path.exists(self.dest): os.makedirs(self.dest)
if os.path.isfile(path + '/' + self.dest + '/init.log') == True: os.remove(path + '/' + self.dest + '/init.log')
with open (path + '/' + self.dest + '/init.log', mode='a', encoding='utf-8') as a_file:
a_file.write(self.summery)
Tools.Locked.State.LogAddress = False
InitLog.Update.sound = 'on'
InitLog.Update.engine = 'google.txt'
InitLog.save()
エラー:TypeError: save() takes exactly 1 positional argument (0 given)
編集:
冗長性を減らすために、上記の例を簡略化しました。
以前使用していた作業コードは次のとおりです (新しいクラス変数を宣言せずに InitLog を使用するという元の要求を試みる前)
import os
import sys
import pdb
import fileinput
import Tools
class InitLog:
def __init__(self):
pass
def setLaws(self):
self.sound = 'off'
self.engine = 'google.txt'
def Update(self):
while Tools.Locked.State.LogAddress == True: pass
Tools.Locked.State.LogAddress = True
try: os.remove(path + '/' + self.dest + '/init.log')
except: pass
summery = 'sound: ' + self.sound + '\n'
summery += 'engine: ' + self.engine + '\n'
path = os.getcwd()
if not os.path.exists(self.dest): os.makedirs(self.dest)
if os.path.isfile(path + '/' + self.dest + '/init.log') == True: os.remove(path + '/' + self.dest + '/init.log')
with open (path + '/' + self.dest + '/init.log', mode='a', encoding='utf-8') as a_file:
a_file.write(summery)
Tools.Locked.State.LogAddress = False
Tools.Locked.State.LogAddress = False
log = InitLog()
log.setLaws()
log.sound = 'on'
log.Update()
log = InitLog()
このクラスを使用する必要があるすべてのモジュールについて言う必要はありません