2012-09-20 8 views
9

मैं पायथन में एक नौसिखिया हूं और विभिन्न प्रकार के नमूना कोड का परीक्षण कर रहा हूं। जब मैंने 2.7 के बजाय पायथन 3 का उपयोग करना शुरू किया; मैं एक वाक्यविन्यास त्रुटि पर आया, लेकिन मुझे समझ में नहीं आता कि उस त्रुटि को कैसे ठीक किया जाए।पायथन 3: अमान्य सिंटेक्स

@app.route('/login/', methods=['GET', 'POST']) 
def login(): 
    error = None 
    if request.method == 'POST': 
     session['username'] = request.form['username'] 
     session['password'] = request.form['password'] 
     try: 
      # use reddit_api's login 
      r.login(user=session['username'], password=session['password']) 
     except InvalidUserPass, e: 
      error = 'Incorrect username or password. ' 
     if not error: 
      subreddits = r.user.get_my_reddits(limit=25) 
      my_reddits = [] 
      for i in range(25): 
       my_reddits.append(subreddits.next().display_name) 
      session['my_reddits'] = my_reddits 
      return redirect(url_for('index')) 
    return render_template('login.html', error=error) 
+1

पढ़ने [पीईपी 3110: अपवाद-हैंडलिंग परिवर्तन] (http://docs.python.org/release/3.0.1/whatsnew/2.6.html#pep-3110) –

उत्तर

16

बदलें

except InvalidUserPass, e: 

को
except InvalidUserPass as e: 

अधिक जानकारी के लिए this देखें।

7

सीधे शब्दों में except InvalidUserPass as e::

File "app.py", line 101 
    except InvalidUserPass, e: 
         ^
SyntaxError: invalid syntax 

यहाँ कुछ संदर्भ देने के लिए है कि कोड की अधिक है। और भगवान के लिए, चलो बदसूरत error बात से छुटकारा पाने:

@app.route('/login/', methods=['GET', 'POST']) 
def login(): 
    if request.method == 'POST': 
     session['username'] = request.form['username'] 
     session['password'] = request.form['password'] 

     try: 
      # use reddit_api's login 
      r.login(user=session['username'], password=session['password']) 
     except InvalidUserPass as e: 
      return render_template('login.html', 
            error='Incorrect username or password.') 

     subreddits = r.user.get_my_reddits(limit=25) 
     my_reddits = [] 
     for i in range(25): 
      my_reddits.append(subreddits.next().display_name) 
     session['my_reddits'] = my_reddits 
     return redirect(url_for('index')) 

    return render_template('login.html') 
2

python3 में यह बताया गया है:

except InvalidUserPass as e: