これが「Python の優れた慣行」であるかどうかはわかりませんが、たとえば、次のようなカスタム ファイル オブジェクトを定義することは可能でしょうか。
myfile = myopen('myfile.txt')
with myfile:
write('Hello World!') #notice we don't put "myfile.write(..)" here!
つまり、ファイル コンテキストは関数"write()" を作成するので、myfile.write(..) などを入力する必要はありません。これにより、入力の手間が省け、場合によっては目的が明確になります。例えば:
myboard = ChessBoard()
with ChessBoard():
make_move("e4")
make_move("e5")
give_up()
とは対照的に
myboard = ChessBoard()
with ChessBoard():
make_move("e4",board=myboard)
make_move("e5",board=myboard)
give_up(board=myboard)
問題は、これを行う必要があるかどうかです。どうすればそれを行うことができますか?どうにかして globals()-dict を変更する必要があると思いますが、それは悪い考えのようです..
編集:わかりましたありがとう!これをしないようにアドバイスする良い答えが複数ありました。だから私はそれをしません:o)