看不懂,参考答案为什么要这样编辑?有没有大神指导一下?

来源:2-8 Python定义实例方法

慕设计4377555

2021-10-08 14:51

class Animal(object):

    def __init__(self, name, age, localtion):

        self.__name = name

        self.__age = age

        self.__localtion = localtion


    def set_name(self, name):

        self.__name = name


    def get_name(self):

        return self.__name


    def set_age(self, age):

        self.__age = age


    def get_age(self):

        return self.__age


    def set_localtion(self, localtion):

        self.__localtion =localtion


    def get_localtion(self):

        return self.__localtion


写回答 关注

2回答

  • 常思方安
    2021-10-12 20:21:02

    可以这样写

    class Animal():

        def __init__(self,name,age,location):

            self.__name=name

            self.__age=age

            self.__location=location

        

        def get_hs(self):

            return 'name={},age={},location={}'.format(self.__name,self.__age,self.__location)

    dog=Animal('wangcai',2,'HuNan')

    cat=Animal('MiMi',1,'BeiJing')

    print(dog.get_hs())

    print(cat.get_hs())


  • LVXC
    2021-10-09 13:33:57

    该Animal类中有3个实例属性,分别是name,age和location,并且这3个属性都是带双下划线(__)前缀的,说明是私有属性。私有属性在类的外部不能被直接访问,但可以在类的内部直接访问,所以定义了六个方法分别获取(get)和设置(set)这三个私有属性的值,在类的外部可以通过这六个方法分别获取或设置实例中这3个属性的值。__init__实例方法是构造函数,在创建实例的时候可以方便同时设置实例的属性的初始值。

    慕设计437...

    谢谢!

    2021-10-11 10:41:23

    共 1 条回复 >

Python3 进阶教程(新版)

学习函数式、模块和面向对象编程,掌握Python高级程序设计

41910 学习 · 236 问题

查看课程

相似问题