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

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

首先这两天接触到了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')

    

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

原文地址:https://www.cnblogs.com/ylx900/p/8796336.html