I answered a question here that is probably similar to what you want (the second part of the answer, which also links to this answer regarding Bakeries and States...). Using Spatial Join works also, but it creates another layer which might not be desirable.
Your code might look something like this...
import arcpy
# Set overwrite option
arcpy.env.overwriteOutput = True
# KEEPING ORIGINAL LAYERS (NOT CREATING ADDITIONAL "JOINED" LAYER)
# Create FeatureLayers
arcpy.MakeFeatureLayer_management("C:/YourFolder/YourPointsLayer.shp", "lyr_PointsLayer")
arcpy.MakeFeatureLayer_management("C:/YourFolder/SchoolDistricts.shp", "lyr_SchoolDistricts")
# Create a search cursor for the school districts
rows = arcpy.SearchCursor("lyr_SchoolDistricts")
for row in rows:
# What you'll do is select each school district one at a time, and then select all the points in that school district and calculate the SCHOOLDIST field
# NOTE: If you are using not using shapefiles, then you'll have to change the FID in the line below to OBJECTID (or similar)
arcpy.SelectLayerByAttribute_management("lyr_SchoolDistricts", "NEW_SELECTION", "\"FID\" = " + str(row.getValue("FID")))
arcpy.SelectLayerByLocation_management("lyr_PointsLayer", "INTERSECT", "lyr_SchoolDistricts", "", "NEW_SELECTION")
arcpy.CalculateField_management("lyr_PointsLayer", "SCHOOLDIST", "'{0}'".format(str(row.getValue("DISTRICT"))), "PYTHON_9.3", "")
print "Finished processing " + str(row.getValue("DISTRICT"))
In the code above, the "DISTRICT" field is the name of the field in the School Districts layer, and the "SCHOOLDIST" field is the field that's in the Points layer...