@@ -416,7 +416,7 @@ def func():
416416 function document 
417417 """ 
418418 print ()
419-  class  Employee :
419+  class  Employee ( object ) :
420420 """ 
421421 class document 
422422 """ 
@@ -807,7 +807,7 @@ def __del__(self): # 函数属性:析构函数
807807 I1  =  C1 ('bob' )
808808
809809#-- Python的类没有基于参数的函数重载 
810-  class  FirstClass :
810+  class  FirstClass ( object ) :
811811 def  test (self , string ):
812812 print (string )
813813 def  test (self ): # 此时类中只有一个test函数 即后者test(self) 它覆盖掉前者带参数的test函数 
@@ -857,7 +857,7 @@ class A(B):
857857 pass 
858858 # OOP和委托: "包装"对象 在Python中委托通常是以"__getattr__"钩子方法实现的, 这个方法会拦截对不存在属性的读取 
859859 # 包装类(或者称为代理类)可以使用__getattr__把任意读取转发给被包装的对象 
860-  class  wrapper :
860+  class  wrapper ( object ) :
861861 def  __init__ (self , object ):
862862 self .wrapped  =  object 
863863 def  __getattr (self , attrname ):
@@ -870,7 +870,7 @@ def __getattr(self, attrname):
870870 list (x .keys ()) # 返回 "Trace: keys" ['a', 'b'] 
871871
872872#-- 类的伪私有属性:使用__attr 
873-  class  C1 :
873+  class  C1 ( object ) :
874874 def  __init__ (self , name ):
875875 self .__name  =  name  # 此时类的__name属性为伪私有属性 原理 它会自动变成self._C1__name = name 
876876 def  __str__ (self ):
@@ -881,7 +881,7 @@ def __str__(self):
881881 I ._C1__name  =  'jeey'  # 这里可以修改成功 self.name = jeey 
882882
883883#-- 类方法是对象:无绑定类方法对象 / 绑定实例方法对象 
884-  class  Spam :
884+  class  Spam ( object ) :
885885 def  doit (self , message ):
886886 print (message )
887887 def  selfless (message )
@@ -945,7 +945,7 @@ def bar(self, message):
945945 fooChild .bar ('HelloWorld' )
946946
947947#-- #实例方法 / 静态方法 / 类方法 
948-  class  Methods :
948+  class  Methods ( object ) :
949949 def  imeth (self , x ): print (self , x ) # 实例方法:传入的是实例和数据,操作的是实例的属性 
950950 def  smeth (x ): print (x ) # 静态方法:只传入数据 不传入实例,操作的是类的属性而不是实例的属性 
951951 def  cmeth (cls , x ): print (cls , x ) # 类方法:传入的是类对象和数据 
@@ -975,13 +975,13 @@ def cmeth(cls, x): print(x)
975975#-- 类修饰器:是它后边的类的运行时的声明 由@符号以及后边紧跟的"元函数"(metafunction)组成 
976976 def  decorator (aClass ):.....
977977 @decorator  
978-  class  C :....
978+  class  C ( object ) :....
979979 # 等同于: 
980-  class  C :....
980+  class  C ( object ) :....
981981 C  =  decorator (C )
982982
983983#-- 限制class属性: __slots__属性 
984-  class  Student :
984+  class  Student ( object ) :
985985 __slots__  =  ('name' , 'age' ) # 限制Student及其实例只能拥有name和age属性 
986986 # __slots__属性只对当前类起作用, 对其子类不起作用 
987987 # __slots__属性能够节省内存 
0 commit comments