WMI win32 クラスの名前を取得しようとしています。ただし、__name__
属性は定義されていません。
>> import wmi
>> machine = wmi.WMI()
>> machine.Win32_ComputerSystem.__name__
次のエラーが表示されます。
Traceback (most recent call last):
File "<pyshell#21>", line 1, in <module>
machine.Win32_ComputerSystem.__name__
File "C:\Python27\lib\site-packages\wmi.py", line 796, in __getattr__
return _wmi_object.__getattr__ (self, attribute)
File "C:\Python27\lib\site-packages\wmi.py", line 561, in __getattr__
return getattr (self.ole_object, attribute)
File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 457, in __getattr__
raise AttributeError(attr)
AttributeError: __name__
すべての Python 関数に対して__name__
属性が定義されていると思っていたので、ここで何が問題なのかわかりません。この関数がその属性を持たない可能性はありますか?
OK、メソッドだと思った理由は machine.Win32_ComputerSystem() が定義されているからですが、それだけでは何かがメソッドになるには不十分だと思います。メソッドではないことに気づきました。
ただし、これは機能しません。
>> machine.Win32_ComputerSystem.__class__.__name__
'_wmi_class'
「Win32_ComputerSystem」を返すようにします。これどうやってするの?