# HG changeset patch # User Sietse Brouwer # Date 1326803403 -3600 # Tue Jan 17 13:30:03 2012 +0100 # Node ID 5315d33c2205dd948c2eedcddf7bcfded883900a # Parent 5c4bb13a291a967b0c410890bf5ebbfac806d537 about_classes: fix pep8-compliance, spelling. diff --git a/python 3/koans/about_classes.py b/python 3/koans/about_classes.py --- a/python 3/koans/about_classes.py +++ b/python 3/koans/about_classes.py @@ -3,79 +3,79 @@ from runner.koan import * + class AboutClasses(Koan): class Dog: "Dogs need regular walkies. Never, ever let them drive." - - def test_instances_of_classes_can_be_created_adding_parenthesis(self): + + def test_instances_of_classes_can_be_created_adding_parentheses(self): fido = self.Dog() self.assertEqual(__, type(fido).__name__) - + def test_classes_have_docstrings(self): self.assertRegexpMatches(self.Dog.__doc__, __) - + # ------------------------------------------------------------------ - - class Dog2: - def __init__(self): + + class Dog2: + def __init__(self): self._name = 'Paul' - + def set_name(self, a_name): self._name = a_name - + def test_init_method_is_the_constructor(self): dog = self.Dog2() self.assertEqual(__, dog._name) - - def test_private_attributes_are_not_really_private(self): + + def test_private_attributes_are_not_really_private(self): dog = self.Dog2() dog.set_name("Fido") self.assertEqual(__, dog._name) # The _ prefix in _name implies private ownership, but nothing is truly # private in Python. - + def test_you_can_also_access_the_value_out_using_getattr_and_dict(self): fido = self.Dog2() fido.set_name("Fido") - + self.assertEqual(__, getattr(fido, "_name")) # getattr(), setattr() and delattr() are a way of accessing attributes # by method rather than through assignment operators - + self.assertEqual(__, fido.__dict__["_name"]) # Yes, this works here, but don't rely on the __dict__ object! Some # class implementations use optimization which result in __dict__ not # showing everything. - + # ------------------------------------------------------------------ - + class Dog3: - def __init__(self): + def __init__(self): self._name = None def set_name(self, a_name): self._name = a_name - + def get_name(self): return self._name - + name = property(get_name, set_name) - - + def test_that_name_can_be_read_as_a_property(self): fido = self.Dog3() fido.set_name("Fido") - + # access as method self.assertEqual(__, fido.get_name()) - + # access as property self.assertEqual(__, fido.name) - + # ------------------------------------------------------------------ - + class Dog4: - def __init__(self): + def __init__(self): self._name = None @property @@ -85,79 +85,79 @@ @name.setter def name(self, a_name): self._name = a_name - + def test_creating_properties_with_decorators_is_slightly_easier(self): fido = self.Dog4() - + fido.name = "Fido" self.assertEqual(__, fido.name) - + # ------------------------------------------------------------------ - + class Dog5: - def __init__(self, initial_name): + def __init__(self, initial_name): self._name = initial_name @property def name(self): return self._name - + def test_init_provides_initial_values_for_instance_variables(self): - fido = self.Dog5("Fido") + fido = self.Dog5("Fido") self.assertEqual(__, fido.name) - + def test_args_must_match_init(self): - with self.assertRaises(___): self.Dog5() - + with self.assertRaises(___): + self.Dog5() + # THINK ABOUT IT: # Why is this so? - + def test_different_objects_have_difference_instance_variables(self): fido = self.Dog5("Fido") rover = self.Dog5("Rover") - + self.assertEqual(__, rover.name == fido.name) - + # ------------------------------------------------------------------ - + class Dog6: def __init__(self, initial_name): self._name = initial_name - + def get_self(self): return self - + def __str__(self): return __ - + def __repr__(self): return "" def test_inside_a_method_self_refers_to_the_containing_object(self): fido = self.Dog6("Fido") - - self.assertEqual(__, fido.get_self()) # Not a string! - + + self.assertEqual(__, fido.get_self()) # Not a string! + def test_str_provides_a_string_version_of_the_object(self): fido = self.Dog6("Fido") - + self.assertEqual("Fido", str(fido)) - + def test_str_is_used_explicitly_in_string_interpolation(self): fido = self.Dog6("Fido") - + self.assertEqual(__, "My dog is " + str(fido)) - + def test_repr_provides_a_more_complete_string_version(self): fido = self.Dog6("Fido") self.assertEqual(__, repr(fido)) - + def test_all_objects_support_str_and_repr(self): - seq = [1,2,3] - + seq = [1, 2, 3] + self.assertEqual(__, str(seq)) self.assertEqual(__, repr(seq)) - + self.assertEqual(__, str("STRING")) self.assertEqual(__, repr("STRING")) -