- 类(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'>