关于python的面向对象的疑问,为啥

关于python的面向对象的疑问,为啥,第1张

学习之前你得理解以下含义。

(1)什么是类(class)

        类是用来描述具有相同属性和方法对象得集合。例如人类,动物类等;类可以看作是属性加上行为。

(2)什么是属性

        属性是该类的特征。例如人类都有肤色,头发等等。

(3)什么是行为

行为就是类里面的方法。例如人类都会吃饭,睡觉,说话等等。

(4 )什么是对象

世间万物皆为对象,对象是类的实例。

例如下面这个例子,初学者可能会和我一样,为什么调用了people 没有返回任何信息呢?

class people:
    """描述一个人类"""
    language = "chinese"  # 类属性


    def __init__(self,name):  #构造函数,初始化数据
        self.name=name   #实例属性:实例对象自己私有。

    def __str__(self):
        return "我叫{},我说{}".format(self.name, people.language)


if __name__ == "__main__":
    people('张三')
    

why?__str__不是内置方法,可以在类被调用的时候,自动执行这块的代码吗?

其实这块我们只是调用了这个类里面的__str__(),但是该方法有返回值,我们首先得用参数接收这个返回值,就可以直接打印出来。不妨你也来试一试!

class people:
    """描述一个人类"""
    language = "chinese"  # 类属性

    def __init__(self, name):  # 构造函数,初始化数据
        self.name = name  # 实例属性:实例对象自己私有。

    def __str__(self):
        return "我叫{},我说{}".format(self.name, people.language)


if __name__ == "__main__":
   test = people('张三')
   print(test)






-------------------------------------------------------------------------------------

"C:\Program Files\Python38\python.exe" C:/Users/1147/PycharmProjects/unittest_project/Scripts/面向对象.py
我叫张三,我说chinese

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/728066.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-26
下一篇 2022-04-26

发表评论

登录后才能评论

评论列表(0条)

保存