2016-07-13 2 views
1

Я новичок в OOP в Python. Я использую пакет unittest в первый раз. В приведенном ниже коде, который из официальной документации Python, когда мы используем self.assertEqual, мы вызываем метод assertEqual из базового класса unittest.Testcase?с использованием self.method_name внутри класса метод

В общем, всякий раз, когда мы вызываем self.method_name внутри другого определения метода класса, вызывает ли он метод из базового класса (при условии, что method_name не определен для производного класса)?

import random 
import unittest 

class TestSequenceFunctions(unittest.TestCase): 

    def setUp(self): 
     self.seq = list(range(10)) 

    def test_shuffle(self): 
     # make sure the shuffled sequence does not lose any elements 
     random.shuffle(self.seq) 
     self.seq.sort() 
     self.assertEqual(self.seq, list(range(10))) 

ответ

0

Как указано в documentation for unittest, assertEqual представляет собой метод обеспечивается TestCase класса.

В общем случае, когда доступ к методу (через self.<method_name>), базовые классы затем ищут этот метод, используя MRO или порядок разрешения метода для этого конкретного класса.

+0

Спасибо, это имеет смысл! –

Смежные вопросы