[英]Function not accessible in Python - Error: global name is not defined
我是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'))
有人告诉我未定义全局名称“ valid_day”。 谁能告诉我哪里出问题了? 我想我在上面定义了函数valid_day / valid_year,因此应该可以访问或不能访问?
通过使用self
作为post
函数的参数,该代码似乎在类内。
在这种情况下,您需要使用self
来访问方法。 (通常,您对调用上方的作用域和定义函数的假设是正确的。)
重写您的帖子功能,如下所示:
def post(self):
user_day = self.valid_day(self.request.get('day'))
user_year = self.valid_year(self.request.get('year'))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.