我是Python编程的新手,我遇到了以下错误:
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>
<br>
<br>
<input type="submit">
</form>
"""
class MainPage(webapp2.RequestHandler):
def get(self):
self.response.out.write(form)
def valid_day(day):
if day and day.isdigit():
day = int(day)
if day > 0 and day <= 31:
return day
def valid_year(year):
if year and year.isdigit():
year = int(year)
if year > 1899 and year < 2021:
return year
def post(self):
user_day = valid_day(self.request.get('day'))
user_year = valid_year(self.request.get('year'))
我告诉全球名称&#39; valid_day&#39;没有定义。谁能告诉我哪里有错?我想我上面定义了函数valid_day / valid_year所以它应该是可访问的吗?
答案 0 :(得分:2)
使用self
作为post
函数的参数,可以看出此代码位于类中。
在这种情况下,您需要使用self
来访问这些方法。 (通常,关于在调用之上定义和定义函数的假设是正确的。)
重写你的帖子功能如下:
def post(self):
user_day = self.valid_day(self.request.get('day'))
user_year = self.valid_year(self.request.get('year'))