理解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'>

猜你喜欢

转载自blog.csdn.net/F13122298/article/details/129963585