2017-06-19 6 views
1

このチーム名簿の保存ファイルを作成する方法を理解できません。私が実行する問題は、txtファイルに保存するものを作成しようとするときです。私はなぜself.playerなどをコードに書かれることができないかわからない。プレーヤーの情報がどのように書かれているかに基づいて、保存して読み込むtxtファイルを書き込むべきですか?ファイルアクセスチームのロースターをPythonで作成する

class teamClass: 

    Player = "" 
    phone_number = "" 
    jersey = "" 

    def __init__(self, Player, phone_number, jersey): 
     self.Player = Player 

     self.phone_number = phone_number 

     self.jersey = jersey 

    def setPlayer(self, Player): 
     self.Player = Player 

    def setphone_number(self, phone_number): 
     self.phone_number = phone_number 

    def setjersey(self, jersey): 
     self.jersey = jersey 

    def setNewPlayer(self, Player): 
     self.setPlayer(Player) 

    # accessor methods 

    def getPlayer(self): 
     return self.Player 

    def getphone_number(self): 
     return self.phone_number 

    def getjersey(self): 
     return self.jersey 

    def displayData(self): 
     print("") 

     print("Player Info: ") 

     print("------------------------") 

     print("Player:", self.Player) 

     print("Phone number:", self.phone_number) 

     print("Jersey:", self.jersey) 
+1

はあなたのインデントを修正し、それは調子が悪いです。 –

+0

はい、申し訳ありませんが、正しくコピーできませんでした。 – JohnnySea

+0

保存プロセス用に作成したコードを共有したい場合があります。これは、ファイルに保存するだけのものではないクラスです。 –

答えて

0

まず、あなたのコードでかなりの数の問題があります。

  • は役に立たないクラス属性を作成し、インスタンスの属性を使用してそれらを上書きしないでください。代わりに__init__(self, name=None, phone=None, jersay=None)のようなコンストラクタを使用してください。
  • Do notは、Javaのようにゲッターとセッターを使用します。 Pythonはすべての属性に副作用なしでアクセスできると仮定しています。属性のgetter/setterが本当に必要な場合は、@propertyを使用します。
  • displayDataの方法は不要です。代わりに、define__str__()の方法を使用し、インスタンスでprint()を呼び出してください。

あなたの質問については:あなたはjson、tomlを使用することができますまたはちょうどpickleあなたのオブジェクトを保存します。使用可能なライブラリtomlがここにあります。 JSON使用

例:

import collections 
import json 
Player = collections.namedtuple('Player', ('name', 'phone_number', 'jersay')) 

# Create a new player instance 
p = Player('John Doe', '555-ACME', None) 

# Save the player-data to a json-file 
with open('thefile.txt', 'wt') as f: 
    f.write(json.dumps(p)) 

# Load it back 
with open('thefile.txt', 'rt') as f: 
    p2 = Player(*json.loads(f.read())) 

# Look, ma! They are the same 
assert p == p2 
関連する問題