Pythone面向对象方法

m面向对象

继承:多继承

对象

创建对象和调用函数一样。

方法:

#实例方法:只能通过实例调用,实例方法第一个定义的参数只能是实例本身的引用。
class Myclass :
def foo(self) :
print(id(self))
@classmethod
def foo1(cls):
print(cls)
@staticmethod
def foo2():
print(“hhh”)
a=Myclass()#创建实例方法
b=Myclass()#有创建一心的实例
c=Myclass()
print(id(a))
a.foo()
b.foo()
c.foo()

Myclass.foo()只是错误的,不可以被调用,不可以实例化.

print(id(Myclass))
Myclass.foo1()
Myclass.foo2()
#类方法:定义类方法要使用装饰器@classmethod,定义的第一一个参数只能对象的引用,可以通过类或实例直接调用
#静态方法:定义静态方法要是用@staticmethod,没有默认的参数必须的参数,

类方法

对象方法

够造方法

静态方法

类的定义与创建

class Person():
#name=”zs”#成员变量
#name=None
myname=None

def __init__(self,__myname__):          #  构造方法
    self.__myname__=__myname__

def show(self,s,b):  #等同于java中的this show(this){}
     print(self.__myname__,s,b)

P=Person(“jjjj”)

__myname=”lisi”

P.show(“hh”,”hh”)

print(P.name)

封装

class TestClassMethod(object):

METHOD = 'method hoho'

def __init__(self):
    self.name = 'leon'

def test1(self):
    print ('test1')
    print (self)

@classmethod
def test2(cls):
    print (cls)
    print ('test2')
    print (TestClassMethod.METHOD)
    print ('----------------')

@staticmethod
def test3():
    print (TestClassMethod.METHOD)
    print ('test3')

if name == ‘main‘:
a = TestClassMethod()
a.test1()
a.test2()
a.test3()
TestClassMethod.test3()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值