@@ -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