<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def BIF_templates(self):
 """ Create template for writing in BIF format """

        network_template = Template('network $name {\n}\n')
        # property tag may or may not be present in model,and since no of properties
        # can be more than one , will replace them accoriding to format otherwise null
        variable_template = Template("""variable $name {
    type discrete [ $no_of_states ] { $states };
$properties}\n""")
        property_template = Template('    property $prop ;\n')
        # $variable_ here is name of variable, used underscore for clarity
        probability_template = Template("""probability ( $variable_$seprator_$parents ) {
    table $values ;
}\n""")
        return network_template, variable_template, property_template, probability_template