You should generally have your functions within packages. In a package you can then have a function that returns the version of the package body:
SQL> select my_package.body_version ver from dual;
VER
---
1.3
Whenever you release a new version of the package, increment the version returned by this function. We do this automatically by getting our source control system (PVCS) to record its version number in the function definition.