马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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
|