Python类方法,静态方法,私有方法具体化分析

实例方法 :可以通过实例化对象调用的方法    实例方法不能被静态方法和类方法访问
类方法   :操作实例对象的方法    静态方法和类方法可以被实例方法访问
私有方法   : 只能类内部调用的方法    
静态方法    :不需要传参数。不能访问实例成员和类成员    当我们需要某些与类和实例无关的功能,我们可以使方法静态化。相当于类外函数,静态函数方法调用,保证代码工整了,可以用对象调用
实例变量  :  实例化对象传入的变量    
类变量,类属性 :   在类里面定义的变量,类名调用,也可以通过实例化对象调用    所有实例化对象共有的属性
私有变量,私有属性 : 不能在类的外部被使用或直接访问    

直接上代码参考:

class Person:
    count = 0  # 类属性/变量

    def __init__(self, name, age, score):
        self.name = name  # 实例变量
        self.__age = age  # 实例变量#私有属性
        self.score = score  # 实例变量
        Person.count += 1   

    @property  # 获取私有属性
    def age(self):
        return self.__age

    @age.setter  # 私有属性设置
    def age(self, new_age):
        self.__age = new_age

    @age.deleter  # 删除私有属性
    def age(self):
        del self.__age

    def show_info(self):  # 实例方法,实例化对象调用的方法
        self.score = self.__show_score()    #通过实例方法调用私有方法
        return self.name, self.age, self.score

    @classmethod  # 跟实例化无关,#在类外部使用,用来操作类变量的方法
    def show_age(cls, age):  # 创建类方法,参数是age,调用时需要传入实例化的age
        age += 1
        return age

    @staticmethod  # 静态方法,相当于跟类与实例无关的方法
    def finish():
        return 'add person finished!'

    def __show_score(self):  # 私有方法,只能类内部调用,可以访问实例化变量
        return self.score-10


lily = Person('lily', 21, 55)  # 实例化对象
eric = Person('eric', 26, 66)
print(lily.finish())  # 调用静态方法
print(lily.score)  # 调用实例变量的值
print(Person.count)  # 调用类变量的值
print(lily.count)  # 通过对象调用类变量的值
print(*lily.show_info())  # 调用实例化方法
print(lily.age)  # 通过@property修改后调用私有属性的值
print(lily.show_age(lily.age))  # 调用类方法

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值