On 08/30/2012 07:54 AM, boltar2003@boltar.world wrote: > Hello > > I'm slowly teaching myself python so apologies if this is a dumb question. > but something has confused me with the os.stat() function: > >>>> s = os.stat(".") >>>> print s > posix.stat_result(st_mode=16877, st_ino=2278764L, st_dev=2053L, st_nlink=2, > st_u > id=1000, st_gid=100, st_size=4096L, st_atime=1346327745, st_mtime=1346327754, > st > _ctime=1346327754) > > What sort of object is posix.stat_result? Its not a dictionary or list or a > class object as far as I can tell. Thanks for any help. >
posix.stat_result is a class, and s is an instance of that class. You can see that by typing type(s). But you're wondering how print generated all that stuff about the s instance. You can start to learn that with dir(s), which shows the available attributes. All those attributes that have leading and trailing double-underscores are called "special attributes," or "special methods." In particular notice __str__(), which is a method provided for your convenience. print will call that if it's available, when you try to print an instance. It also masquerades as a tuple using __getitem__() and other special methods. Normal use of the instance is done by the attributes like s.st_atime and s.st_size, or by using the object as a tuple. (using the square brackets to fetch individual items or a range of items) You can get more documentation directly from s by simply typing help(s) and/or help(os.stat) Or you can go to the web docs, http://docs.python.org/library/os.html and search downward for os.stat (this link is currently for Python 2.7.3) -- DaveA -- http://mail.python.org/mailman/listinfo/python-list