Updating cylinder's properties using a scipt
An example using a custom property with an update method.

import bpy
from bpy.props import FloatProperty
context = bpy.context
scene = context.scene

def bond_strength(self, context):
    self.scale.x = self.scale.y =  self.bond_strength
    return None

# create a custom property on all objects
bpy.types.Object.bond_strength = FloatProperty(name="Strength",
                                               default = 1.0,
                                               precision = 4,
                                               update=bond_strength)

# adds a slider to UI object properties panel. # would be in a custom Panel
if True: # only need to run this once
    def show_strength(self, context):
        self.layout.prop(context.object, "bond_strength")
    bpy.types.OBJECT_PT_context_object.remove(show_strength) # put in unregister   
    bpy.types.OBJECT_PT_context_object.append(show_strength)

# add a primitive
bpy.ops.mesh.primitive_cylinder_add(radius=1.0)

#create more
cyl = context.active_object  # newly created cylinder

for i in range(4):
    cyl = cyl.copy()
    scene.objects.link(cyl)
    cyl.bond_strength *= 0.5
    cyl.location.x += 2