代码改变世界

第十六、十七天,关于面向对象

2018-04-11 16:09  dalao说得对  阅读(113)  评论(0编辑  收藏  举报

---恢复内容开始---

首先这两天接触到了class这个词,格式如下

class Person:                   #类的开头字母要大写

  静态变量 = '值'                 #这个变量是共用的

  def  __init__(self):

    内部属性

 

调用的时候,先看内部属性是否有,若无则去静态变量里面找

当需要让class中的函数改变静态变量的值时,需要用类名.变量名称的方法,如:

class Person:                  

  money = 0             

  def  __init__(self,name):

    self.name = name

    Person.money  += 10000

或者可以这样:

class Person:                  

  money = [0]             

  def  __init__(self,name):

    self.name = name

    Person.money[0]  += 10000    #注意此处的Person.money[0]的0是索引,而上面的money[0]是list中的元素0

这样就可以实现对静态变量的改变。

 

此处涉及命名空间以及作用域的问题,用图片说明最为直观。如下程序

class Person:                  

  money = 0             

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

    self.name = name

    self.age = age

    self.sex = sex

  def  speak(self):

    print('balabala')

    

有点丑但起码表明了关系。