理解不来{:10_334:}
前面一个大概懂了,这个又懵
有没有其他的例子,感觉还是难以理解
0 issubclass
1 isinstance
2 if hasattr
3 用于将函数封装起来,便于程序员修改时不影响用户使用
4 x= property(getXSize, setXSize, delXSize)
5
class CodeA:
@staticmethod
def foo():
print("调用静态方法 foo()")
class CodeB:
@classmethod
def foo(cls):
print("调用类方法 foo()")
6
def f():
print(.......)
f = something(f())
7
class C:
def __init__(self, size=10):
self.size = size
@property
def do_size(self):
return self.size
@do_size.setter
def do_size(self, value):
self.size = value
@do_size.deleter
def do_size(self):
del self.size
0`
issubclass(class, classinfo)
1`
isinstance(object, classinfo)
2`
getattr(object, name, default = None)
3`
定义一个属性,可以轻松调用读取、写入(修改)、删除的方法
4`
x = property(getXSize, setXSize, delXsize)
5`
@staticmethod
class CodeA:
def foo():
print("调用静态方法 foo()")
@classmethod
class CodeB:
def foo(cls):
print("调用类方法 foo()")
6`
def f():
print('I love FishC.com!')
f = something(f)
7. 通过自学【扩展阅读】property 的详细使用方法,将第 4 题的代码修改为“使用属性修饰符创建描述符”的方式实现
{:5_109:}
裸奔的松鼠 发表于 2017-3-12 11:37
转载鱼油回答
a = C()之后, 1,直接用a.x获取x属性的值,等价于a.getx() 2,直接用a.x ='lily' 设置x属性 ...
谢谢分享,听了你这个好像明白了一点~
学习学习
已经有一点点小难了
结合视频看这个贴子理解了
感觉这个和web中的注解有点类似,不知道是不是一样的,@类名
本帖最后由 Clement_Levi 于 2020-8-9 15:49 编辑
内部的东西似乎不是很好理解啊{:10_249:}
学习了!
这个比修饰符简单多了咯
可以看看这个->https://www.cnblogs.com/z-x-y/p/10148911.html
https://blog.csdn.net/jpch89/article/details/84026130
这个很好理解
测试题:
0:issubclass()
1:isinstance()
2:getattr() 必须填写默认参数
3:设置属性的属性
4:x = property(getXSize,setXSize,delXSize)
5:
class CodeA:
@staticmethod
def foo():
print("调用静态方法 foo()")
# 将 foo() 方法设置为静态方法
foo = staticmethod(foo)
class CodeB:
@classmethod
def foo(cls):
print("调用类方法 foo()")
# 将 foo() 方法设置为类方法
foo = classmethod(foo)
6:
import time
def timeslong():
start = time.time()
def f():
print("I love FishC.com!")
end = time.time()
return end - start
return f
t = timeslong()
print(t())
7:
class C:
def __init__(self, size=10):
self.size = size
@property
def Size(self):
return self.size
@Size.setter
def Size(self, value):
self.size = value
@Size.deleter
def Size(self):
del self.size
c = C()
print(c.Size)
c.Size = 12
print(c.Size)
不能理解,请问应该怎么用?
'''========================================================================
0.利用BIF issubclass()
1.利用BIF isinstance(a,A)
2.利用BIF hasattr()
3.将property的返回值传递给一个类参数,利用这个参数对于其他的参数做出设定
========================================================================'''
'''========================================================================
4.请补充以下代码,使程序可以正常运行:
class C:
def __init__(self, size=10):
self.size = size
def getXSize(self):
return self.size
def setXSize(self, value):
self.size = value
def delXSize(self):
del self.size
x = property(getXSize,setXSize,delXSize)
# 此处应该补充一句代码,程序才能正常运行
========================================================================'''
'''========================================================================
5.使用修饰符修改以下代码。
class CodeA:
@staticmethod(foo)
def foo():
print("调用静态方法 foo()")
#将 foo() 方法设置为静态方法
#foo = staticmethod(foo)
class CodeB:
@classmethod(foo)
def foo(cls):
print("调用类方法 foo()")
#将 foo() 方法设置为类方法
#foo = classmethod(foo)
========================================================================'''
'''========================================================================
6. 你真的理解了修饰符的用法吗?那请你写出以下代码没有用上修饰符的等同形式:
@something
def f():
print("I love FishC.com!")
def something(func):
func()
something(f)
======================================================================='''
'''=======================================================================
7. 通过自学【扩展阅读】property 的详细使用方法,
将第 4 题的代码修改为“使用属性修饰符创建描述符”的方式实现。
class C:
def __init__(self, size=10):
self.size = size
@property
def x(self):
return self.size
@x.setter
def x(self, value):
self.size = value
@x.deltter
def x(self):
del self.size
======================================================================='''
并不能理解这个‘属性修饰符创建描述符’