理解python的面向对象

  • 类(Class): 用来描述具有相同的属性和方法的对象的集合。
    它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
  • 方法:类中定义的函数。
  • 对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。
python 有三种方法:静态方法static method ,类方法 class method ,实例方法·
class A(object):
    def foo1(self,x):
        print("实例方法 executing foo(%s,%s),id(self)和id(x):(%s,%s)"%(self,x,id(self),id(x)))
        
    @classmethod
    def foo2(cls,x):
        print("类方法 executing foo(%s,%s),id(cls)和id(x):(%s,%s)"%(cls,x,id(cls),id(x)))
        
    @staticmethod
    def foo(x):
        print("静态方法 executing foo(%s),id(x)=%s"%(x,id(x)))

a=A()

结果:

print('id(a)=%s ,id(A())=%s '%(id(a),id(A()))) #id(a)=4508633312 ,id(A())=4508632976
x=17
a.foo1(x) #实例方法 executing foo(<__main__.A object at 0x10cbc48e0>,17),id(self)和id(x):(4508633312,4444712064)
a.foo2(x) #类方法 executing foo(<class '__main__.A'>,17),id(cls)和id(x):(140475182384080,4444712064)
a.foo(x) #静态方法 executing foo(17),id(x)=4444712064

实例变量需要创建之后才可以使用

self代表类的实例,而非类
# self代表类的实例,而非类
# self 代表的是类的实例,代表当前对象的地址,而 self.class 则指向类。
class Test:
    def prt(self):
        print(self)   ##<__main__.Test object at 0x115f7cfa0>
        print(self.__class__) #<class '__main__.Test'>
 
t = Test()
t.prt()

结果:

<__main__.Test object at 0x115f7cfa0>
<class '__main__.Test'>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值