Maison  >  Questions et réponses  >  le corps du texte

python - 如何动态获取某个对象的某个属性的名字

举个例子

class A:
    def __init__(self,value1,value2):
        self.value1=value1
        self.value2=value2

def function(value):
    #do some thing and get the name of obj.property
    print(property)

tempObj=A()    

function(tempObj.value1)#这里会print输出value1,无论value1值是多少
function(tempObj.value2)#这里会print输出value2,无论value2值是多少

真实遇到的问题是这样的
在写restfulApi,每次会在逻辑代码前要检查传入数据的正确性,经常会检查数组的长度

然后大概写成这样

def post(self):
    parsed_data = self.parser.parse_args()
    if len(parsed_data.T) < 8:
        return make_parser_error('T', '不得少于8个')

我想把代码变成

def post(self):
    parsed_data = self.parser.parse_args()
    check_result=function(parsed_data.T,8)
    if check_result:
        return check_result,400 #400是返回状态码
天蓬老师天蓬老师2760 Il y a quelques jours731

répondre à tous(2)je répondrai

  • 阿神

    阿神2017-04-18 10:19:21

    Il ne devrait pas être possible d'obtenir des noms de variables via des variables en Python. Tout au plus, le nom de la classe peut être obtenu, car Python est un type valeur si valeur1 et valeur2 ont la même valeur, alors ce sont exactement les mêmes objets. et pointez vers le même endroit dans la mémoire

    .

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 10:19:21

    python3

    __dict__

    class A:
        def __init__(self,v=0):
            self.v=v
    
            
    a=A()
    print(a.v) # 0
    
    for k,v in a.__dict__.items():
        print('key:%s, val:%d' % (k,v))
    
        
    # key:v, val:0
    

    répondre
    0
  • Annulerrépondre