14.14.1.6 Calling functions with your own custom data types

###
14.14.1.6 Calling functions with your own custom data types

You can also customize `ctypes` argument conversion to allow instances of your own classes be used as function arguments. `ctypes` looks for an `_as_parameter_` attribute and uses this as the function argument. Of course, it must be one of integer, string, or unicode:

    >>> class Bottles(object):
    ...     def __init__(self, number):
    ...         self._as_parameter_ = number
    ...
    >>> bottles = Bottles(42)
    >>> printf("%d bottles of beer\n", bottles)
    42 bottles of beer
    19
    >>>

If you don't want to store the instance's data in the `_as_parameter_` instance variable, you could define a `property` which makes the data avaiblable.