面向对象-方法

Posted jbzd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象-方法相关的知识,希望对你有一定的参考价值。

方法

Python的方法有:普通方法、静态方法、类方法,这些方法在 内存中都归属于类,区别是调用方式不同
#普通方法:由实例调用,默认自带一个self参数,执行普通方法时,自动将该方法的对象赋值给self
#类方法:由类调用,必须写上 cls 作为参数,执行类方法时,自动将调用该方法的类赋值给cls
#静态方法:由类调用,无默认参数

例子:
  class Test:
    def __init__(self,name)
      self.name = name
    def a(self):
      print(‘我是一个普通方法‘)

    @classmethod
    def b(cls, name):
      print(‘我是一个类方法‘,name)
    @staticmethod
    def c(name):
      print(‘我是一个静态方法‘, name)

t = Test(‘tom‘)
t.a()

#类方法调用
Test.b(‘tom‘)

#静态方法调用
Test.c(‘tom‘)

说明:所有方法,均属于类而非对象中,所以在内存中也只保存一份,它们之间不同的是 调用方式和参数传入
例如:
class A:
def __init__(self,name):
self.name = name

def b(self):
print()
a = A(‘a‘)
a2 = A(‘a‘)
print(id(a.b),id(a2.b)) #两个实例的b方法的地址是一样的









































以上是关于面向对象-方法的主要内容,如果未能解决你的问题,请参考以下文章

python之路之前没搞明白4面向对象(封装)

JAVA方法的定义

Java中面向对象的三大特性之封装

面向面试编程代码片段之GC

PHP面向对象之选择工厂和更新工厂

方法