-2

それはタブ/スペースに関係していると確信していますが、100万ドルの質問はプログラムのどこにありますか?

import webapp2

form="""
<form method="post">
    What is your birthday?
    <br>

    <label> Month
    <input type="text" name="month">
    </label>

    <label> Day
    <input type="text" name="day">
    </label>

    <label> Year
    <input type="text" name="year">
    </label>
    <div style="color: red">%s(error)s</div>
    <br>
    <br>
    <input type="submit">
</form>
"""
months = ['January', 'Febuary','March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
mapping = dict((m[:3].lower(), m) for m in months)

def valid_month(month):
    if month:
        s_month = month[:3].lower()
        return mapping.get(s_month)

def valid_day(day):
    if day and day.isdigit():
        day = int(day)
        if day in range(1, 32):
            return day

def valid_year(year):
    if year and year.isdigit(): 
        int_year = int(year)
        if int_year in range(1900,2021): 
            return year

class MainPage(webapp2.RequestHandler):
    def write_form(self, error=""):
        self.response.out.write(form % {"error": error})

    def get(self):
        self.write_form()

    def post(self):
        user_month = valid_month(self.request.get('month'))
        user_day = valid_day(self.request.get('day'))
        user_year = valid_year(self.request.get('year'))

        if not (user_month and user_day and user_year):
            self.write_form("That's wasn't valid, friend!")
        else:
            self.response.write("Thanks! That's a totally valid day!")

app = webapp2.WSGIApplication([('/', MainPage)], debug=True)            
4

2 に答える 2

3

python -ttどこにいるのか教えてくれます。

$ python -tt script.py
  File "script.py", line xxx
    ...
TabError: inconsistent use of tabs and spaces in indentation
于 2012-08-18T19:20:03.580 に答える
0

クラス内で、valid_month、valid_day、valid_year を定義する必要があります。

あなたが彼らに電話するとき、あなたは言う必要があります

 user_month = self.valid_month(self.request.get('month'))

それ以外の

 user_month = valid_month(self.request.get('month'))

また、各メソッドの各定義では、最初のパラメーターとして「self」を含める必要があります。これにより、クラスにバインドされます。

def valid_month(self, month):

それ以外の

def valid_month(month):

それ以外の場合、クラスが参照されているときの「自己」は、クラスのスコープ外に存在するこれらの無関係なメソッドには何の意味もありません。

于 2016-11-07T01:18:09.410 に答える