回溯应提醒您引发^{}异常的属性访问:>>> f.b
Traceback (most recent call last):
File "", line 1, in
AttributeError: Foo instance has no attribute 'b'
或者,将Exception转换为str:>>> try:
... f.b
... except AttributeError, e:
... print e
...
Foo instance has no attribute 'b'
如果要获取对象上可用属性的列表,请尝试^{}或^{}>>> dir(f)
['__doc__', '__init__', '__module__', 'a']
>>> help(str)
Help on class str in module __builtin__:
class str(basestring)
| str(object) -> string
|
| Return a nice string representation of the object.
| If the argument is a string, the return value is the same object.
|
| Method resolution order:
| str
| basestring
| object
|
| Methods defined here:
|
| __add__(...)
| x.__add__(y) <==> x+y
|
[...]
| ----------------------------------------------------------------------
| Data and other attributes defined here:
|
| __new__ =
| T.__new__(S, ...) -> a new object with type S, a subtype of T
你甚至可以在dir上调用help()(为什么留给读者作为练习):>>> help(dir)
Help on built-in function dir in module __builtin__:
dir(...)
dir([object]) -> list of strings
If called without an argument, return the names in the current scope.
Else, return an alphabetized list of names comprising (some of) the attributes
of the given object, and of attributes reachable from it.
If the object supplies a method named __dir__, it will be used; otherwise
the default dir() logic is used and returns:
for a module object: the module's attributes.
for a class object: its attributes, and recursively the attributes
of its bases.
for any other object: its attributes, its class's attributes, and
recursively the attributes of its class's base classes.
失败了。。。除非第三方为您提供了一些预编译模块,否则您始终可以查看代码,在这种情况下,您应该要求更好的文档(比如一些单元测试!)从你的供应商那里!