Python中类的静态函数、静态变量的实现

本文介绍了Python中类的使用方法,包括静态方法、静态变量的定义与调用。通过实例演示了如何利用@staticmethod和@classmethod装饰器来实现这些特性。
# encoding:UTF-8
__author__ = 'mrsimple'

# 含有类的静态方法、静态变量, 普通类成员函数, 成员变量
class People:
    count = 0
    sum = 0
    def __init__(self, name, age, gend):
        self.name = name
        self.age = age
        self.gender = gend
        People.peopleCount()    # 人数计数
        People.ageSum(age)      # 岁数计数

    def toString(self):
        print "name : %s, age : %d, gender : %s." % (self.name,self.age, self.gender)

    # 静态函数
    @staticmethod
    def sayHi(fname):
        print "hi," + fname

    # 间接实现静态成员变量
    @classmethod
    def peopleCount(cls):
        cls.count += 1
        return cls.count

    # 间接实现静态成员变量, 有参数
    @classmethod
    def ageSum(cls, age):
        cls.sum += age
        return cls.sum

ple = People("mr.simple", 22, "male")
ple.toString()
People.sayHi("frank")
print ple.name

print  People.peopleCount()
print  People.ageSum(10)

使用@staticmethod标签来表明函数为类的静态函数,且sayHi的参数中没有self。而类的静态变量借助@classmethod来实现,其中peopleCount中为无参静态函数,而ageSum中有一个age参数。

如图 : 


评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值