我正在嘗試撰寫一個將字串作為引數并將此引數用作類物件的函式。
請注意,我的解釋可能很奇怪,因為我在網上找不到答案。下面的 MWE 應該澄清我的意思,指出有問題的行。
編輯:在 MWE 中,“列印”就是一個例子。我需要能夠呼叫物件來更新它、列印它,或者在串列的情況下附加到它。我需要訪問物件本身,而不是物件的值。
MWE
# Create a class
class myClass():
def __init__(self):
self.one = "Test"
self.two = "Plop"
# Define function
def myFunction (parameter):
print(myObject.parameter)##### This line is currently not possible.
# Use class
myObject = myClass()
# Use function
myFunction("one")
我不是試圖將新物件附加到類,只是為了呼叫現有物件。
這甚至可能嗎?
uj5u.com熱心網友回復:
看起來您需要呼叫的內置函式getattr
my_object = myClass()
def my_function(parameter):
print(getattr(my_object, parameter, None))
這也不是從外部范圍呼叫物件的最佳實踐。我建議使用 dict 魔術方法:
class MyClass:
def __init__(self):
self.one = "Test"
self.two = "Plop"
def __getitem__(self, parameter):
return getattr(self, parameter, None)
def __setitem__(self, parameter, value):
return setattr(self, parameter, value)
my_obj = MyClass()
parameter = "x"
print(my_obj[parameter])
my_obj[parameter] = "test"
print(my_obj.x)
uj5u.com熱心網友回復:
您需要使用 getarttr():
# Create a class
class myClass():
def __init__(self):
self.one = "Test"
self.two = "Plop"
# Use class
myObject = myClass()
# Define function
def myFunction(parameter):
print(getattr(myObject, parameter))##### This line is currently possible.
# Use function
myFunction("one")
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/521501.html
標籤:Python班级
上一篇:如何使用類獲取實體的值?
