You assume some format of input data, while it's not spelled-out explicitly. #print final MAC address is just a visual garbage - next line is self-descriptive enough. #Coverts MAC Addresses into cisco format should be a docstring instead. Separator instead of sep may help a little bit to someone who only sees function's signature (as in many IDEs). mac_to_cisco_format is long, mac_to_cisco may be alright. If someone had successfully guessed that mac_conv converts MAC address, they'd still have to guess the format. There may be other formats for MAC addresses. If you wanted to do something else with MAC in that format (like printing it as a part of some string), what would you do? Naming You print the result instead of return-ing it. If this was going into a product, I would probably add some error handling too, to allow for input that isn't a mac address - too short, too long, wrong separators, alternate groupings (a cisco-formatted address is still a valid mac address, but this function won't handle it.)Ĭode seems fine - it works and is easy to comprehend. If I was writing this, however, I would probably do it in just a couple of lines, as you know exactly how the input and output strings are going to be formatted: def mac_conv(mac, sep='-'): You can actually eliminate that usage of the variable all together: #join groups into a single MAC I would also avoid reusing variables, especially if its a function argument ( mac). #Open file with MAC addresses and convert them Return '.'.join(''.join(group) for group in groups)įirst of all, you should be using return rather than print to get a value out of a function, otherwise you'll have problems when you try to expand the program. This can result in: def mac_conv(mac, sep='-'): Other than the above function, you don't need to use f.readlines() you can just use f. I'd then join the last three lines into one.Īs return and '.'.join are easy to understand in a single one-liner. Perform a list comprehension to join the sliced segments together.Slice segments into a three item list.To do this I would base my algorithm around the use of a list comprehension. The only thing I'd change is to reduce the amount of lines.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |