码迷,mamicode.com
首页 > 其他好文 > 详细

OOP中初始化函数中的入参与self.属性的关系

时间:2021-05-24 12:05:20      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:初始化   ret   详解   初始   data-   必须   def   面向对象   函数   

  初学面向对象的同学,比较容易把构造函数中的self.属性与函数形参搞混,比方说下面例子中self.name=name,“=”号左右的name和“=”号右边的name是不是一个东西?“=”左边和右边是不是必须写成一样?相信大家有很多疑问,下面就跟大家详解一下。

class persion:
    def __init__(self, name, age1):
        self.name = name
        self.age = age1

self.name=name是什么意思?本质是说把函数的形参值传递给对象的name属性。

“=”右边的name是初始化函数的形参,是定义函数传入的参数,和def add(a,b): return a+b中的a,b参数是一样的;
“=”左边self.name是对象的name属性,比方说我们实例出来一个A对象人并且A的名字是"张三",persion("DY","18"),A的名字=self.name,“张三”就是实例对象初始化函数传入的实参。
所以self.name与函数形参name本质不是一个概念,一般把属性和参数定义成同一个名字类似于self,是为了代码的可读性,便于理解,他们两个并不是同一个东西,所以即使不定义成相同的变量名也是可以的。
 

OOP中初始化函数中的入参与self.属性的关系

标签:初始化   ret   详解   初始   data-   必须   def   面向对象   函数   

原文地址:https://www.cnblogs.com/dy99/p/14772960.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!