美文网首页
python attribute到底是属性,还是方法和属性的统称

python attribute到底是属性,还是方法和属性的统称

作者: 桐人_ | 来源:发表于2022-11-23 16:02 被阅读0次

    先说结论,我认为attribute是方法和属性的统称~~

    • setattr函数,从字面上理解似乎是设置attribute。attribute的翻译是属性,似乎这个函数就只能是设置属性呢?通过实践发现,实例方法也可以通过这个函数来改变。所以这里的attr不能理解为属性!换句话说这里的attribute不是我们平时所称的“属性和方法”中的“属性”!而是属性和方法的统称!类似的情况还出现hasattrgetattr等函数中。
    def print_cat():
        print('I am cat!')
    
    class Animal:
        def __init__(self):
            self.name = 'dog'
            self.sex = 'man'
        def print_name(self):
            print(f'I am {self.name}')
    
    a = Animal()
    a.print_name()
    setattr(a, 'print_name', print_cat)
    a.print_name()
    # 输出结果
    # I am dog
    # I am cat!
    
    • emmm...,探讨这个意义到底是什么?意义就是希望自己能够清楚地认清attribute和属性的区别,时刻警惕很多文章中所提的“属性”到底是attribute还是属性?有些文章或者书本里面,会很容易搞混了属性、方法和attribute三者的关系,尤其是很多时候把attribute说成属性。导致很多时候看文章的时候都会深深的自我怀疑,这个函数真的只能修改属性吗?或者attribute应该分为"attribute变量"和"attribute函数"或许会更好一点。(相关的叫法在C++中貌似分别称为成员变量成员函数)但是把attribute分为属性和方法已经是约定俗称的事情了,不得不说,attribute和属性真的是很容易搞混!!orz

    相关文章

      网友评论

          本文标题:python attribute到底是属性,还是方法和属性的统称

          本文链接:https://www.haomeiwen.com/subject/cfmzxdtx.html