Sınıfına erişim Python bir değişken kullanarak bağlıyor?

1 Cevap php

PHP i bu gibi sınıf özelliklerini erişebilirsiniz:

<?php // very simple :)
class TestClass {}
$tc = new TestClass{};
$attribute = 'foo';
$tc->{$attribute} = 'bar';
echo $tc->foo
// should echo 'bar'

Python ben bunu nasıl yapabilirim?

class TestClass()
tc = TestClass
attribute = 'foo'
# here comes the magic?
print tc.foo
# should echo 'bar'

1 Cevap

Bu soru birkaç kez istendi. Sen adıyla özellik almak için getattr kullanabilirsiniz:

print getattr(tc, 'foo')

Bu aynı zamanda yöntemler için çalışır:

getattr(tc, 'methodname')(arg1, arg2)

Ad kullanımı ile bir nitelik ayarlamak için setattr

setattr(tc, 'foo', 'bar')

Bir öznitelik kullanımı olup olmadığını kontrol etmek için hasattr

hasattr(tc, 'foo')