Python实例属性设置的方法

黄哥Python提醒, 设置实例属性除在__init__ 方法处之外,还可以在其它地方。

知乎上有一个提问者,就碰到这样的问题,下面的代码演示回答他的问题
python中普通方法中添加属性的时候,可以不在method.()括号中添加吗?

可以在类中的实例方法设置实例属性,凡是通过self点操作符为左值的时候,都是赋值,

如果该属性存在,赋新值(绑定到新的对象),如果属性不存在,创建新的属性并将对象的引用赋值给该属性。

请看下面的代码,但建议在__init__ 方法处设置属性,但写一些测试代码时,会在其它方法中设置新的属性。

# coding:utf-8
'''
黄哥Python培训 黄哥所写
Python 3

'''


class Foo:

    def set_name(self, name):
        '''黄哥Python培训 黄哥所写'''
        self.name = name

    def get_name(self):
        '''黄哥Python培训 黄哥所写'''
        print(self.__dict__['name'])
        print(hasattr(self, 'name'))
        return self.name


p = Foo()
p.set_name("Python")
print(p.get_name())
# 输出结果
# Python
# True
# Python

黄哥谈转行当程序员
黄哥谈转行当程序员之二
黄哥Python提醒:转行当程序员修炼之路