今後のアプリケーションで繰り返し処理する配列のフライトを離れるリストを作成しています。Pythonは新しいクリーンなインスタンスを作成しませんか?
私は長い長いhtmlから情報を得ています。
xpathesがチェックアウトし、他のすべては問題ありません。私はFlightLegsと呼ばれる主要なラッピングオブジェクトを持っています。そしてマイナーな内側の物体はフライトと呼ばれました。
構造がシンプルです。すべてのFlightLegsには、フライトが終了するDATEと、その1つのDATEの異なるTIMESに出発する3つのフライトがあります。 8時10分、午前14時30分、午前20時00分:上のままに28/03/2012および3便:だからあなたのような
は、日付を持っています。
十分に単純です。
私は2つのネストループを持っています。まず、FlightLegsをループします。 DATEを設定し、その脚のフライトをループします。それらをフライトの配列に追加します。その後FlightLegsをリストに掲載します。そして新しいものを始める。ここで
はコードです:
#Looping thourght the flight legs.
for flightLeg in flightLegs:
#. is needed in the xpath so it matches items only in this flight leg.
fleg = FlightLeg()
fleg.Date = str(flightLeg.xpath(".//input[@name='departDate1']")[0].get('value'))
innerFlights = flightLeg.xpath(".//div[@class='flights_flight']")
counter = 0
#Getting the three flights in the flight leg leaving at 8 - 14 - 20.
for flight in innerFlights:
fl = Flight()
fl.FlightPrice = str(flight.xpath(".//span[@class='flights_price']")[0].text)
fl.FlightDepartureTime = str(flight.xpath(".//span[@class='flights_departuretime']")[0].text)
fl.FlightArrivalTime = str(flight.xpath(".//span[@class='flights_arrivaltime']")[0].text)
fl.FlightNumber = str(flight.xpath(".//span[@class='flights_flightnumber']")[0].text)
fl.FlightDepAirport = str(flight.xpath(".//span[@class='flights_departureairport']")[0].text)
fleg.Flights.append(fl)
print "Lengts of inner flights: " + str(len(fleg.Flights))
counter += 1
print "Lengts of inner counter: " + str(counter)
flightList.append(fleg)
さて、これで問題は内部飛行中の飛行脚アレイは、実際に最終便600までは3の上に増加していることであるそれは新しいオブジェクトと思われますループを覚悟で作られています...これが原因なのでしょうか?
EDIT:
FlightLegは次のとおりです。
class FlightLeg:
Flight = []
Date = ""
フライトは次のとおりです。
ところでclass Flight:
FlightPrice = ""
FlightDepartureTime = ""
.
.
.
..私はもちろんのPythonに新たなんです。私はちょうど学んでいます。しかし、DSMのコメントを読むと、結局のところ静的である可能性があります。私は変数がデフォルトで公開されインスタンスになると考えました。
私はそれらにアクセスする方法は重要ではありません。重要な部分はカウンターです。 ;-)
私はそれらをforeachなどでアクセスします。
影響を受けるのは、どのラインですか?出力は何ですか? – Marcin
FlightLeg.Flightsの定義方法は実際には表示されません。それはインスタンス変数ではなくクラス変数である可能性があります。したがって、すべてのFlightLegインスタンスは1つのFlights配列を共有しますか? – DSM
3行目のすべてのコードが4つのスペースでインデントされていると思いますか?あなたはインデントを修正できますか? – kossmoboleat