鱼C论坛

 找回密码
 立即注册
查看: 1844|回复: 3

[已解决]请问这里最后一行代码为啥没有调动property里面的doc?

[复制链接]
发表于 2021-9-14 15:55:23 | 显示全部楼层 |阅读模式
10鱼币
class Foo:
    def __init__(self,num):
        self.age = num
    @property
    def get(self):
        return self.age
    @get.setter
    def get(self,num1):
        self.age = num1
class temp:
    def __init__(self,time):
        self.count = time
    def get(self):
        return self.count
    def set(self,time1):
        self.count = time1
    def delete(self):
        del self.count
        print ('已删除')
    p = property(get,set,delete,'修饰符property的使用')

#a = Foo(10)
#print (a.get)
#a.get = 20
#print (a.get)
b = temp(5)
print (b.p)
b.p = 10
print (b.p)
print (b.__dict__)
del b.p
print (b.__dict__)
b.p.__doc__
最佳答案
2021-9-14 15:55:24
你用 类名.p.__doc__  就行了。。
In [1]: class temp:
   ...:     def __init__(self,time):
   ...:         self.count = time
   ...:     def get(self):
   ...:         return self.count
   ...:     def set(self,time1):
   ...:         self.count = time1
   ...:     def delete(self):
   ...:         del self.count
   ...:         print ('已删除')
   ...: 
   ...:     p = property(get,set,delete,'修饰符property的使用')
   ...: 

In [2]: t = temp()
In [3]: t = temp(60)

In [4]: t.p
Out[4]: 60

In [5]: t.__doc__

In [6]: temp.__doc__

In [7]: temp.p.__doc__
Out[7]: '修饰符property的使用'


# 至于为什么是这样子? 我也不想去进一步了解,哈哈,反正这样的装饰器的__doc__特性,几乎用不上。更常用的是直接用@property



最佳答案

查看完整内容

你用 类名.p.__doc__ 就行了。。 # 至于为什么是这样子? 我也不想去进一步了解,哈哈,反正这样的装饰器的__doc__特性,几乎用不上。更常用的是直接用@property
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-9-14 15:55:24 | 显示全部楼层    本楼为最佳答案   
你用 类名.p.__doc__  就行了。。
In [1]: class temp:
   ...:     def __init__(self,time):
   ...:         self.count = time
   ...:     def get(self):
   ...:         return self.count
   ...:     def set(self,time1):
   ...:         self.count = time1
   ...:     def delete(self):
   ...:         del self.count
   ...:         print ('已删除')
   ...: 
   ...:     p = property(get,set,delete,'修饰符property的使用')
   ...: 

In [2]: t = temp()
In [3]: t = temp(60)

In [4]: t.p
Out[4]: 60

In [5]: t.__doc__

In [6]: temp.__doc__

In [7]: temp.p.__doc__
Out[7]: '修饰符property的使用'


# 至于为什么是这样子? 我也不想去进一步了解,哈哈,反正这样的装饰器的__doc__特性,几乎用不上。更常用的是直接用@property



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

使用道具 举报

发表于 2021-9-16 12:36:17 | 显示全部楼层

b.p 对象都被你 del 删除了,再对该对象 __doc__ 肯定会报错的

把 b.p.__doc__ 代码放再 del b.p 前一行即可

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

使用道具 举报

 楼主| 发表于 2021-9-16 20:17:57 | 显示全部楼层
Twilight6 发表于 2021-9-16 12:36
b.p 对象都被你 del 删除了,再对该对象 __doc__ 肯定会报错的

把 b.p.__doc__ 代码放再 del b.p 前一 ...
class temp:
    def __init__(self,time):
        self.count = time
    def get(self):
        return self.count
    def set(self,time1):
        self.count = time1
    def delete(self):
        del self.count
        print ('已删除')
    p = property(get,set,delete,'修饰符property的使用')

#a = Foo(10)
#print (a.get)
#a.get = 20
#print (a.get)
b = temp(5)
#print (b.p)
#b.p = 10
#print (b.p)
#print (b.__dict__)
#del b.p
#print (b.__dict__)
print (b.p.__doc__)

我改成运行后返回:
int([x]) -> integer
int(x, base=10) -> integer

Convert a number or string to an integer, or return 0 if no arguments
are given.  If x is a number, return x.__int__().  For floating point
numbers, this truncates towards zero.

If x is not a number or if base is given, then x must be a string,
bytes, or bytearray instance representing an integer literal in the
given base.  The literal can be preceded by '+' or '-' and be surrounded
by whitespace.  The base defaults to 10.  Valid bases are 0 and 2-36.
Base 0 means to interpret the base from the string as an integer literal.
>>> int('0b100', base=0)
4

没懂为啥会返回这个,我想让他返回property里面我输入的文本
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-13 09:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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