鱼C论坛

 找回密码
 立即注册
楼主: 小甲鱼

[扩展阅读] property 的详细使用方法

  [复制链接]
发表于 2020-2-13 18:29:51 | 显示全部楼层
前面一个大概懂了,这个又懵
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-11 17:11:23 | 显示全部楼层
有没有其他的例子,感觉还是难以理解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-19 15:33:40 | 显示全部楼层
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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-30 03:36:52 | 显示全部楼层
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 题的代码修改为“使用属性修饰符创建描述符”的方式实现


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-15 23:45:15 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-4 21:59:32 | 显示全部楼层
裸奔的松鼠 发表于 2017-3-12 11:37
转载鱼油回答
a = C()之后, 1,直接用a.x获取x属性的值,等价于a.getx() 2,直接用a.x ='lily' 设置x属性 ...

谢谢分享,听了你这个好像明白了一点~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-6 18:38:04 | 显示全部楼层
学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-26 16:15:09 | 显示全部楼层
已经有一点点小难了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-3 10:39:52 | 显示全部楼层
结合视频看这个贴子理解了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-6 18:34:11 | 显示全部楼层
感觉这个和web中的注解有点类似,不知道是不是一样的,@类名
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-9 15:48:12 | 显示全部楼层
本帖最后由 Clement_Levi 于 2020-8-9 15:49 编辑

内部的东西似乎不是很好理解啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-17 21:03:08 | 显示全部楼层
学习了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-11 23:16:04 | 显示全部楼层
这个比修饰符简单多了咯
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-27 17:18:16 | 显示全部楼层
可以看看这个->https://www.cnblogs.com/z-x-y/p/10148911.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-27 17:33:13 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-27 17:28:58 | 显示全部楼层
测试题:
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)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-23 22:50:14 From FishC Mobile | 显示全部楼层
不能理解,请问应该怎么用?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-11 22:40:42 | 显示全部楼层
'''========================================================================
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
======================================================================='''
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-15 00:54:14 | 显示全部楼层
并不能理解这个‘属性修饰符创建描述符’
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-8 00:53:36 | 显示全部楼层
class C:
    def __init__(self):
        self._x = None

    @property
    def x(self):
        pass
        # I'm the 'x' property

    @x.getter
    def x(self):
        return self._x

    @x.setter
    def x(self, value):
        self._x = value

    @x.deleter
    def x(self):
        del self._x

aaa = C()
aaa.x = 5
print(aaa.x)

就很烦...很多就写个例子代码, 不写怎么去使用例子中的代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 02:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表