16 类成员

类成员
1.实例方法
对象.方法
2.类方法
@classmethod
类名.方法
3.静态方法
@staticmethod
类名.方法

4. @property 可以把一个方法变成一个属性
1. 函数只能有一个self参数.
2. 需要有返回值
3. 不能赋值
4. 调用的时候, 我们不需要写括号. 直接当成属性变量来⽤就可以了

class Person:
country="中国"
def __init__(self,name,brithday,qq):
#实例变量. 给对象赋值
self.name=name
self.brithday=brithday
self.qq=qq
def chi(self):
print("走,吃去")

@classmethod #申明类方法
def he(cls):
print("喝饮料")

@staticmethod #申明静态方法,相当于在类中定义的一个普通函数
def shui():
print("睡")

@property #把方法变属性

def age(self):
return 2018-self.brithday

p1=Person()
Person.country="China" # 类变量的修改只能通过类名来完成
p1.email=1970664132 添加实例变量-> 字段 -> 属性(java)
p1.chi() #对象.方法
Person.he() #类名.方法 不管用对象还是用类去访问类方法. 默认传递进去的是类
Person.shui() #类名.方法
print(p1.age)
class Person:
    def __init__(self, name): # 构造, 创建对象的时候自动调用
        self.__name = name # 私有的
        print("这里是构造方法")

    def init(self):
        print("实例方法")

    def __chi(self): # 私有的
        print("我要吃. 疯狂的吃")

    def he(self):
        self.__chi() # 内部调用
        print("我是喝", self.__name)

p = Person("孙艺珍")
p.he()
# # p.__init__() # 很蠢
# p.init()
# print(p.__name)
私有

 

posted @ 2018-11-07 15:13  冰底熊  阅读(141)  评论(0编辑  收藏  举报