@@ -416,7 +416,7 @@ def func():
416
416
function document
417
417
"""
418
418
print ()
419
- class Employee :
419
+ class Employee ( object ) :
420
420
"""
421
421
class document
422
422
"""
@@ -807,7 +807,7 @@ def __del__(self): # 函数属性:析构函数
807
807
I1 = C1 ('bob' )
808
808
809
809
#-- Python的类没有基于参数的函数重载
810
- class FirstClass :
810
+ class FirstClass ( object ) :
811
811
def test (self , string ):
812
812
print (string )
813
813
def test (self ): # 此时类中只有一个test函数 即后者test(self) 它覆盖掉前者带参数的test函数
@@ -857,7 +857,7 @@ class A(B):
857
857
pass
858
858
# OOP和委托: "包装"对象 在Python中委托通常是以"__getattr__"钩子方法实现的, 这个方法会拦截对不存在属性的读取
859
859
# 包装类(或者称为代理类)可以使用__getattr__把任意读取转发给被包装的对象
860
- class wrapper :
860
+ class wrapper ( object ) :
861
861
def __init__ (self , object ):
862
862
self .wrapped = object
863
863
def __getattr (self , attrname ):
@@ -870,7 +870,7 @@ def __getattr(self, attrname):
870
870
list (x .keys ()) # 返回 "Trace: keys" ['a', 'b']
871
871
872
872
#-- 类的伪私有属性:使用__attr
873
- class C1 :
873
+ class C1 ( object ) :
874
874
def __init__ (self , name ):
875
875
self .__name = name # 此时类的__name属性为伪私有属性 原理 它会自动变成self._C1__name = name
876
876
def __str__ (self ):
@@ -881,7 +881,7 @@ def __str__(self):
881
881
I ._C1__name = 'jeey' # 这里可以修改成功 self.name = jeey
882
882
883
883
#-- 类方法是对象:无绑定类方法对象 / 绑定实例方法对象
884
- class Spam :
884
+ class Spam ( object ) :
885
885
def doit (self , message ):
886
886
print (message )
887
887
def selfless (message )
@@ -945,7 +945,7 @@ def bar(self, message):
945
945
fooChild .bar ('HelloWorld' )
946
946
947
947
#-- #实例方法 / 静态方法 / 类方法
948
- class Methods :
948
+ class Methods ( object ) :
949
949
def imeth (self , x ): print (self , x ) # 实例方法:传入的是实例和数据,操作的是实例的属性
950
950
def smeth (x ): print (x ) # 静态方法:只传入数据 不传入实例,操作的是类的属性而不是实例的属性
951
951
def cmeth (cls , x ): print (cls , x ) # 类方法:传入的是类对象和数据
@@ -975,13 +975,13 @@ def cmeth(cls, x): print(x)
975
975
#-- 类修饰器:是它后边的类的运行时的声明 由@符号以及后边紧跟的"元函数"(metafunction)组成
976
976
def decorator (aClass ):.....
977
977
@decorator
978
- class C :....
978
+ class C ( object ) :....
979
979
# 等同于:
980
- class C :....
980
+ class C ( object ) :....
981
981
C = decorator (C )
982
982
983
983
#-- 限制class属性: __slots__属性
984
- class Student :
984
+ class Student ( object ) :
985
985
__slots__ = ('name' , 'age' ) # 限制Student及其实例只能拥有name和age属性
986
986
# __slots__属性只对当前类起作用, 对其子类不起作用
987
987
# __slots__属性能够节省内存
0 commit comments