Edit this page Backlinks This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ====== 4. Regex Representation in Python ====== In this laboratory we will be using **Python3** classes to introduce a possible representation of regular expressions inside code and ways to work with those Regexes. We will start with a base ''class Regex'' that will function as an interface for future descendents: <code python> class Regex: '''Base class for Regex ADT''' def __str__(self) -> str: '''Returns the string representation of the regular expression''' pass def gen(self) -> [str]: '''Return a representative set of strings that the regular expression can generate''' pass def eval_gen(self): '''Prints the set of strings that the regular expression can generate''' pass </code> We remark the following aspects: <note> There is no ''%%__init__(self)%%'' blueprint, implying that descendants of ''Regex'' could be instantiated with ''Descendent()'' if we do not specifically overwrite this default functionality. As we have mentioned in the [second laboratory]("https://ocw.cs.pub.ro/ppcarte/doku.php?id=lfa:2024:lab02") the corespondences with ''Java'' are: * ''self'' $ \rightarrow $ ''this'' * ''%%__init__%%'' $ \rightarrow $ Class Constructor * ''%%__str__(self)%%'' $ \rightarrow $ ''toString()'' </note> <note> We have structures of type ''%%'''comment'''%%''. This is the preferred way of writing documentation for classes and functions in Python, as the structure produces a help dialogue box when hovering over functionalities with this type of comments. </note> <note> We have interfaced the functionalities for the methods: ''%%__str__(self) -> str%%'', ''%%gen(self) -> [str]%%'', ''%%eval_gen(self)%%''. By using the keyword ''pass'' we can create empty function/class definitions, otherwise the Python3 interpreter would throw an error for empty structures. </note> <note> Although Python is dynamically typed, we still encourage you to write the types for parameters and outputs explicitly, as they contribute to documenting the code. Further, when writing python code for interviews, the employers usually follow this aspect and grade you in consequence. </note> ==== Subtitlu ==== abc <note> Cum arata cod python <code python> def main(): ... # your code here if __name__ == "__main__": main() </code> </note>