【发布时间】:2021-02-24 15:51:31
【问题描述】:
我正在尝试创建一个具有属性的类。每次我访问该属性时,无论我如何尝试,我都会收到<property object at xxx>。我在 Visual Studio Community 2019 中运行版本 3.7.8。以下是我尝试过的所有不同方式:
class Form(object):
def __init__(self):
self._text="New Form test"
#----------------------------------------------------------
#example 1
@property
def Text(self):
return _text
@Text.getter
def get_text(self):
return self._text
@Text.setter
def set_text(self,value):
self._text=value
#----------------------------------------------------------
#example 2
def get_text(self):
return self._text
Text = property(get_text)
#----------------------------------------------------------
#example 3
@property
def Text(self):
return self._text
#----------------------------------------------------------
#example 4
@property
def Text(self):
return "foo.bar"
#----------------------------------------------------------
#example 5
def get_text(self):
return self._text
def set_text(self,value):
self._text=value
Text=property()
Text.getter(get_text)
Text.setter(set_text)
#----------------------------------------------------------
#example 6
def get_text(self):
return self._text
def set_text(self,value):
self._text=value
Text = property(get_text,set_text)
#----------------------------------------------------------
我为每个示例添加了标签,并添加了 #6 以及我根据给出的一个答案尝试的另一种方法。我也将 Form(object): 更改为 Form: 没有变化。
【问题讨论】:
-
Wrt "不管我如何尝试" - 显示您用于创建类实例并访问和设置这些属性的代码;正如我所做的in my answer below。例如
f = Form() ...你还在执行什么? -
import Form global _form _form=Form.Form lbl=Entry(designFormTitlebar) lbl.configure(fg="white",font="Arial 10 bold",background="blue2") lbl.insert (0,_form.Text) lbl.place(x=5,y=5)
标签: python class object properties