簡単な質問があります。Python ではすべてがオブジェクトであるため、組み込みオブジェクトの内部属性にアクセスできますか。
たとえばa='some String'
、文字列オブジェクトの内部属性にアクセスしたいa
。
これが私が試したことです:-
for x in dir(a):
if not callable(eval('a.' + x)):
print x
しかし、次のように出力されます。
__doc__
しかし、このオブジェクトから他の属性にアクセスしたいと思います。これは、オブジェクト自体が使用するものです。
このオブジェクトの抽象属性にアクセスする方法はありますか?
詳しく説明すると:
class Some(object):
def __init__(self, initialiser):
self.initialiser = initialiser
s = Some('Any object can be put here, I am using a string')
print s.initialiser ## This is how I'm accessing the attribute of the class Some. Similarly, can I ##access the attributes of the string object `a` defined above?
print s
# 私に与えます:<__main__.Some object at 0x02371AF0>
では、なぜそのprint a
ような出力が得られないのでしょうか。なぜなら、印刷時にいくつかのメソッドが呼び出されa
、実際の文字列シーケンスが保存されているメモリにアクセスして印刷するためです。しかし、これは私が印刷すると起こりませんs