美文网首页Python
python 中的普通方法,静态方法和类方法

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

作者: 一曲广陵散 | 来源:发表于2017-03-08 11:34 被阅读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)
    

    相关文章

      网友评论

        本文标题:python 中的普通方法,静态方法和类方法

        本文链接:https://www.haomeiwen.com/subject/dtgmgttx.html