2017-09-11 19:00 GMT+02:00 Chris Barker <chris.bar...@noaa.gov>: > I wish there were a property feature available almost very time I encounter > a "get*" method in the stdlib (or any where): > > There are a heck of a lot in the os module: > > In [4]: [s for s in dir(os) if s.startswith('get')] > Out[4]: > > ['get_blocking',
This one is not a good example: it takes a parameter. You cannot convert it to a property. > 'getcwd', > And just yesterday I was getting annoyed by some in sysconfig: > > In [6]: [s for s in dir(sysconfig) if s.startswith('get')] > Out[6]: > > ['get_config_h_filename', > 'get_config_var', > 'get_config_vars', > 'get_makefile_filename', > 'get_path', > 'get_path_names', > 'get_paths', > 'get_platform', > 'get_python_version', > 'get_scheme_names'] When designing an API, when I have to choose between property and function/method, I prefer function/method over a property when the code is slow, especially at the first call. I prefer to "warn" users than a call (like the first one which fills a cache) can be slow. Well, it's not a strong rule, sometimes I use a property even if the first call has to fill a cache :-) Here the sysconfig has to build an internal cache at the first call ... if I recall correctly. Victor _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com