Python

python 中的普通方法,静态方法和类方法

2017-03-08  本文已影响6人  一曲广陵散

引用
知乎
stackoverflow

举例,一个基本的实例方法像下面的例子:

class Kls(object):
    def __init__(self, data):
        self.data = data
    def printd(self):
        print(self.data)
ik1 = Kls('arun')
ik2 = Kls('seema')
ik1.printd()
ik2.printd()

图中代码:
1,2参数传递给方法
3 self参数指向当前实例自身
4 我们不需要传递自身给方法,python 解释器自己会做这些操作的

如果现在仅仅想写一些类交互而不是和实例交互的方法会怎样呢?
可以在类外面写一个简单的方法做这些,
但是这样就扩散了类代码的关系到类定义的外面


meaning of @classmethod and @staticmethod for beginner?

问题描述:
装饰器@classmethod, @staticmethod 的区别?

问题解答:
类中方法前加上装饰器@classmethod表示方法是类方法
加上@staticmethod表示方法是静态方法
虽然类方法和静态方法十分相同,但是仍然有一些差别,
类方法调用时,第一个参数必须是一个类对象, 
静态方法不需要类对象作为第一个参数

范例:

class Date(object):

    day = 0
    month = 0
    year = 0

    def __init__(self, day=0, month=0, year=0):
        self.day = day
        self.month = month
        self.year = year

类方法:

先实例化对象,在调用实例化对象中函数

day, month, year = map(int, string_date.split('-'))
date1 = Date(day, month, year)
上一篇下一篇

猜你喜欢

热点阅读