|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- 课堂笔记:
- 1. 和类判定有关的方法是
- a. issubcalss(class,calssinfo),判定子类
- i. 一个类是自己的子类
- ii. classinfo是元祖,只要元祖中一个类对象是,就为True
- iii. 子类是True,父类在元祖中,也是True
- b. isinstance(object,class)
- 2. 和属性有关的方法是:
- a. hasattr(object,name),name是字符串
- b. getattr(object,name[,default])
- c. setattr(object,name,value)
- d. delattr(object,name)
- e. property(getx,setx,delx)
- 3. 修饰符:
- a. @something
- b. f()
- c. ==
- d. f = something(f)
- 测试题:
- 0.
- 使用issubattr(子类,父类),如果返回True,则前面是后面的子类,反之亦然
- 1.
- 使用isinstance(实例对象,类),如果实例对象来自于类,则返回True,否则返回False.
- 2.
- 先用hasattr(对象,属性)来判断,如果为真,则继续.
- 3.
- 对用户很有效,当改变内部方法名的时候,只需要在内部改变就可以了,对外仍然用property的方法名,看做封装的效果.
- 4.
- x = property(getSize,setSize,delSize)
- 5.
- ##class CodeA:
- ## def foo():
- ## print("调用静态方法 foo()")
- ##
- ## # 将 foo() 方法设置为静态方法
- ## foo = staticmethod(foo)
- ##代码A
- class CodeA:
- def __init__(self,func):
- self._func = func
- def __call__(self):
- # 将 foo() 方法设置为静态方法
- self._func()
- self._func = staticmethod(self._func)
- @CodeA #foo = CodeA(foo)
- def foo():
- print("调用静态方法 foo()")
- foo()
- class CodeA:
- @staticmethod
- def foo():
- print("调用静态方法 foo()")
- ##代码B
- ##class CodeB:
- ## def foo(cls):
- ## print("调用类方法 foo()")
- ##
- ## # 将 foo() 方法设置为类方法
- ## foo = classmethod(foo)
- class CodeB:
- def __init__(self,func):
- self._func = func
- def __call__(self):
- self._func()
- self._func = classmethod(self._func)
- @CodeB
- def foo():
- print('调用类方法 foo()')
- foo()
- class CodeB:
- @classmethod
- def foo(cls):
- print("调用类方法 foo()")
- 6.
- f = something(f)
- def f():
- print('I love FishC.com')
- 7.
- class C:
- def __init__(self):
- self._x = None
- @property
- def x(self):
- """I'm the 'x' property."""
- return self._x
- @x.setter
- def x(self, value):
- self._x = value
- @x.deleter
- def x(self):
- del self._x
复制代码 |
|