码迷,mamicode.com
首页 > 编程语言 > 详细

python 类成员知识点学习的一个坑(初学者,大神请绕行)

时间:2019-03-28 00:37:02      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:init   意思   pytho   而不是   16px   成员   初学   先来   self   

先来一段程序:

class Foo:

  name = "abc"

  def __init__(self,age):

    self.age = age

print(Foo.name)

Foo.name = "bcd"

print(Foo.name)

Foo.age = 18

print(Foo.age)

x = Foo(20)

print(x.age)

x.age = 25

print(x.age)

print(x.name)

x.name = cde

print(x.name)

print(Foo.name)

print(Foo.age)

运行这段程序会出现错误吗?答案是否定的。

print(Foo.age)  这一句有没有迷惑你? 用类名访问普通字段

x.name = cde  这一句有没有迷惑你?用对象名访问静态字段并修改其值

以上两种情形按理应该是不允许的。为什么不出错呢?

作为初学者,迷惑了一下。思考一下,然后恍然大悟。

Foo.age 在这段程序中代表的是一个变量。而不是用类名访问普通字段。

同样,x.name 在这段程序中代表的也是一个变量。而不是用对象名访问静态字段并修改其值

作为初学者的你,是否也有相同的困惑呢?

觉得挺有意思, 是以为记。

 

 





python 类成员知识点学习的一个坑(初学者,大神请绕行)

标签:init   意思   pytho   而不是   16px   成员   初学   先来   self   

原文地址:https://www.cnblogs.com/sqs-cn/p/10611970.html

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