Welcome, guest | Sign In | My Account | Store | Cart
# Driving Python function execution from a text file.
# Author: Vasudev Ram:
# https://vasudevram.github.io,
# http://jugad2.blogspot.com
# Copyright 2016 Vasudev Ram

def square(n): return n * n
def cube(n): return n * square(n)
def fourth(n):  return square(square(n))

# 1) Define the fns dict literally ...
#fns = {'square': square, 'cube': cube, 'fourth': fourth}
# 2a) ... or programmatically with a dict comprehension ...
fns
= { fn.func_name : fn for fn in (square, cube, fourth) }
# OR:
# 2b)
# fns = { fn.__name__ : fn for fn in (square, cube, fourth) }
# The latter approach (2a or 2b) scales better with more functions,
# and reduces the chance of typos in the function names.

with open('functions.txt') as fil:
   
for line in fil:
       
print
        line
= line[:-1]
       
if line.lower() not in fns:
           
print "Skipping invalid function name:", line
           
continue
       
for item in range(1, 5):
           
print 'item: ' + str(item) + ' : ' + line + \
           
'(' + str(item) + ') : ' + str(fns[line](item)).rjust(3)

History