面向对象的成员

1. 成员
  在类中能写的所有内容都是类的成员

2. 变量
  1. 实例变量:  由对象去访问的变量.
  2. 类变量. 此时. 这个变量属于类. 但是对象也可以访问.

class Person :
    ouxiang = "科比"             #  这个ouxiang变量是类变量
    def __init__(self,name,gender,ouxiang):
        self.name = name
        self.gender = gender
        self.ouxiang = ouxiang

p = Person("卢本伟","男","周杰伦")
p.ouxiang = "唠嗑"
print(p.ouxiang)
print(Person.ouxiang)  

  

3. 方法
  1. 实例方法:  使用:     对象.方法()
    特点: 在声明的时候. 需要给出self, self必须放在第一个位置
    在调用的时候. 自动的会把对象传递给形参的self
  2. 类方法(@classmethod): 类方法是属于类的.
    特点:在声明的时候需要给出一个能够接受类名的参数, (self) => cls , 也必须放在参数的第一个
    在调用的时候. 自动得把xx对象的类传递给cls
  3. 静态方法(@staticmethod): 静态方法也是属于类的. 静态方法就好比. 我们在类中定义了一个函数
    静态方法一般和类方法差不多. 使用类名去访问

4. 属性
  在方法上添加一个@property. 可以把一个方法变成一个属性. 但是这个属性不可以被赋值
  当我们某一个属性必须经过计算才能得到结果的时候.

class Person :
    def __init__(self,name,birth):
        self.name = name
        self.birth = birth
    @property
    def age(self):          # age方法中的返回值,就是类中的属性值
        return 2018 - self.birth

g = Person("卢本伟",1993)
print(g.age)

  

5. 私有
  所有以双下划线开头的方法, 变量都是私有内容. 外界无法访问. 除非你主动暴露这些内容

 

总结: 强化面向对象

posted on 2018-12-18 15:37  哎呀!土豆  阅读(91)  评论(0编辑  收藏  举报

导航