CSc 120: Classes: Anagrams
Expected Behavior
Write a Python class Word that meets the following requirements:
Attributes:
-
_word: the string that makes up the word;
Methods:
-
__init__(self, word): initializes the _word attribute
of the object with the string word supplied as the method's argument.
-
__str__(self): returns the value of the object's
_word attribute with all upper-case letters converted to lower-case.
-
A method that takes a Word object other as
argument and returns True if
other is an anagram of the word, False
otherwise.
Given two Word objects w1 and
w2, it should be possible to determine whether they
are anagrams of each other (ignoring upper/lower case differences) using
the expression
w1 == w2
Note: A word can need not contain just letters. For
example, "Hi there! :-)" is a legal word.
Examples
-
word1 = Word("post")
word2 = Word("stop")
word1 == word2
Result: True
-
word1 = Word("")
word2 = Word("")
word1 == word2
Result: True
-
word1 = Word("aBlE")
str(word1)
Result: able
-
word1 = Word("able")
word2 = Word("baker")
word1 == word2
Result: False
-
word1 = Word("Hi there! :-)")
word2 = Word("Hit here! :-)")
word1 == word2
Result: True