如何在 class [python, pyCharm] 中测试一个函数
how to test a function inside a class [python, pyCharm]
我现在正在通过 udacity.web_development 课程自学编码。我的编码越来越好了,但我经常遇到与过程相关的问题,而不是与代码相关的问题。
喜欢现在:
我不知道如何在 class 中测试此函数 (passwort_check)。我不能叫它。
当我把 "print MainHandler.passwort_check((self or MainHandler), "string")" 放在底部时,它给我一个类型错误。
我知道现在所有这些网络处理程序都是无用的。但我以后需要它。评论一切,但我需要的一个功能不是正确的解决方案。
这是我的代码:
import webapp2
import re
class MainHandler(webapp2.RequestHandler):
def get(self):
self.response.write('Hello world!')
def passwort_check(self, passwort_string):
if re.match("^[a-zA-Z0-9_-]{3,20}$", passwort_string):
print passwort_string
else: print "change pw"
print MainHandler.passwort_check(MainHandler,"hallo")
app = webapp2.WSGIApplication([
('/', MainHandler)
], debug=True)
这是我的错误:
TypeError: unbound method passwort_check() must be called with MainHandler instance as first > argument (got type instance instead)
但我的问题更笼统:在这种情况下,你们或 professionals/experianced 编码人员如何进行代码验证
您需要先创建 class MainHandler 的实例。喜欢:
my_handler = MainHandler()
然后调用其中的函数。喜欢:
my_handler.passwort_check('passwort_string')
如果您需要为此做一些 unittest
。检查此 link。它会给你一些指示。
希望对您有所帮助。:)
鉴于 MainHandler.passwort_check
对 self
参数没有任何作用,您可以——至少现在——将其定义为 static method。与在 class 定义中声明的普通方法不同,静态方法不会隐式接收调用它们的实例作为它们的第一个参数。事实上,根本不需要在任何实例上调用它们。
@staticmethod # This is called a "decorator"
def passwort_check(passwort_string) # Omit self from the parameters
# The rest of your code remains the same
然后你可以简单地按照你做的方式调用它,但你不需要虚拟一个实例作为第一个参数传递。
MainHandler.passwort_check('string')
应该可以正常工作。
(当然,如果你只是想测试正则表达式,使用像 Regex101 这样的正则表达式测试站点可能会更容易。)
我现在正在通过 udacity.web_development 课程自学编码。我的编码越来越好了,但我经常遇到与过程相关的问题,而不是与代码相关的问题。
喜欢现在: 我不知道如何在 class 中测试此函数 (passwort_check)。我不能叫它。 当我把 "print MainHandler.passwort_check((self or MainHandler), "string")" 放在底部时,它给我一个类型错误。
我知道现在所有这些网络处理程序都是无用的。但我以后需要它。评论一切,但我需要的一个功能不是正确的解决方案。
这是我的代码:
import webapp2
import re
class MainHandler(webapp2.RequestHandler):
def get(self):
self.response.write('Hello world!')
def passwort_check(self, passwort_string):
if re.match("^[a-zA-Z0-9_-]{3,20}$", passwort_string):
print passwort_string
else: print "change pw"
print MainHandler.passwort_check(MainHandler,"hallo")
app = webapp2.WSGIApplication([
('/', MainHandler)
], debug=True)
这是我的错误:
TypeError: unbound method passwort_check() must be called with MainHandler instance as first > argument (got type instance instead)
但我的问题更笼统:在这种情况下,你们或 professionals/experianced 编码人员如何进行代码验证
您需要先创建 class MainHandler 的实例。喜欢:
my_handler = MainHandler()
然后调用其中的函数。喜欢:
my_handler.passwort_check('passwort_string')
如果您需要为此做一些 unittest
。检查此 link。它会给你一些指示。
希望对您有所帮助。:)
鉴于 MainHandler.passwort_check
对 self
参数没有任何作用,您可以——至少现在——将其定义为 static method。与在 class 定义中声明的普通方法不同,静态方法不会隐式接收调用它们的实例作为它们的第一个参数。事实上,根本不需要在任何实例上调用它们。
@staticmethod # This is called a "decorator"
def passwort_check(passwort_string) # Omit self from the parameters
# The rest of your code remains the same
然后你可以简单地按照你做的方式调用它,但你不需要虚拟一个实例作为第一个参数传递。
MainHandler.passwort_check('string')
应该可以正常工作。
(当然,如果你只是想测试正则表达式,使用像 Regex101 这样的正则表达式测试站点可能会更容易。)