不弃_ 发表于 2022-3-13 18:08:10

变量x前加一个下划线什么意思

class Myproperty:
    def __init__(self,fget,fset,fdel):
      self.fget = fget
      self.fset = fset
      self.fdel = fdel
    def __get__(self,instance,owner):
      return self.fget(instance)
    def __set__(self,instance,value):
      self.fset(instance,value)
    def __delate__(self,instance):
      self.fdel(instance)

class Test:
    def __init__(self):
      self._x = None
    def getx(self):
      return self._x
    def setx(self,value):
      self._x= value
    def delx(self):
      del self._x
    x = Myproperty(getx,setx,delx)
c = Test()
c.x = 2
c.x= 5
print(c.x)

isdkz 发表于 2022-3-13 18:10:33

你可以看一下这个:
https://fishc.com.cn/forum.php?mod=redirect&goto=findpost&ptid=209050&pid=5736782

wp231957 发表于 2022-3-13 18:18:19

仅仅前面一个下划线,那全凭作者喜好

python爱好者. 发表于 2022-3-13 19:25:38

代表你不希望能从外部访问这个属性(变量)

tjweiyanmin 发表于 2022-3-13 21:00:43

加油

零的零次方 发表于 2022-3-13 21:41:29

加油

hornwong 发表于 2022-3-13 21:55:19

函数或变量名

不弃_ 发表于 2022-3-13 22:29:50

isdkz 发表于 2022-3-13 18:10
你可以看一下这个:
https://fishc.com.cn/forum.php?mod=redirect&goto=findpost&ptid=209050&pid=573678 ...

一个下划线开头的变量怎么受保护的?

isdkz 发表于 2022-3-13 22:30:46

不弃_ 发表于 2022-3-13 22:29
一个下划线开头的变量怎么受保护的?

靠自觉,只是约定而已,不是规定

amazed 发表于 2022-3-14 00:53:29

1111111111111

1molHF 发表于 2022-3-14 08:51:15

加油

elven08 发表于 2022-3-14 09:16:08

约定俗成的东西而已

甲鱼python 发表于 2022-3-14 09:59:02

加油

不弃_ 发表于 2022-3-14 16:16:11

isdkz 发表于 2022-3-13 22:30
靠自觉,只是约定而已,不是规定

那为什么不加就报错呢?

不弃_ 发表于 2022-3-15 16:49:28

isdkz 发表于 2022-3-13 22:30
靠自觉,只是约定而已,不是规定

在类中定义的但下划线开头的变量实际上能在类外调用,但她说不要在类外调用是什么意思呢?

isdkz 发表于 2022-3-15 16:51:01

本帖最后由 isdkz 于 2022-3-15 16:52 编辑

不弃_ 发表于 2022-3-15 16:49
在类中定义的但下划线开头的变量实际上能在类外调用,但她说不要在类外调用是什么意思呢?

受保护的变量就是不希望在类外被使用,不要又不代表不能,就看个人自觉了,

实际上两个下划线开头的也有办法在类外使用,你不自觉的话就算是两个下划线也没用

不弃_ 发表于 2022-3-15 17:00:43

isdkz 发表于 2022-3-15 16:51
受保护的变量就是不希望在类外被使用,不要又不代表不能,就看个人自觉了,

实际上两个下划线开头的 ...

你是怎么做到懂这么多的,能透露点密集么

isdkz 发表于 2022-3-15 22:11:17

不弃_ 发表于 2022-3-15 17:00
你是怎么做到懂这么多的,能透露点密集么

也没什么秘籍呀,坚持学习就对了,现在就讲究内卷

isdkz 发表于 2022-3-15 22:45:38

不弃_ 发表于 2022-3-15 17:00
你是怎么做到懂这么多的,能透露点密集么

我可以说一下我的见解,你可以参考一下,

就是学一门技术不要过多的关注技术本身,最重要的是思想,

比如你学编程语言吧,不要把重心放在编程语言本身上,而是去参悟其中的思想,

你如果时间充裕的话,建议多学几门编程语言,融会贯通,也不用花太多时间去学,

毕竟不是真要把一门语言学会,而是从其中修炼功底,

每门编程语言都有自己独特的地方,又相辅相成,

你接触多了,“见过了世面” 自然就见怪不怪了,

我推荐学 python 之余可以去学一下 java 和 go,反正我在其中就深受启发的

dearmatt 发表于 2022-3-15 22:46:23

还可以用来输出以前输出过的变量
页: [1] 2
查看完整版本: 变量x前加一个下划线什么意思