Skip to content

Instantly share code, notes, and snippets.

@dchentech
Created January 6, 2015 08:16
Show Gist options
  • Select an option

  • Save dchentech/3ae77d34a025af42fce6 to your computer and use it in GitHub Desktop.

Select an option

Save dchentech/3ae77d34a025af42fce6 to your computer and use it in GitHub Desktop.

Revisions

  1. dchentech created this gist Jan 6, 2015.
    44 changes: 44 additions & 0 deletions overwrite_base.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,44 @@
    # -*- coding: utf-8 -*-

    """
    Overwrite base class's methods.
    """

    import unittest

    class Base(object):

    def level(self):
    return 0


    class Level1(Base):

    def level(self):
    return 1

    class Level2(Base):
    pass


    class TestInherit(unittest.TestCase):

    def test_normal(self):
    self.assertEqual( Base().level(), 0)
    self.assertEqual(Level1().level(), 1)
    self.assertEqual(Level2().level(), 0)

    def test_overwrite(self):

    self.assertEqual(Level2().level(), 0)

    def level(self):
    return -1
    Base.level = level

    self.assertEqual( Base().level(), -1)
    self.assertEqual(Level1().level(), 1)
    self.assertEqual(Level2().level(), -1)


    if __name__ == '__main__': unittest.main()