当前位置:脚本大全 > > 正文

python默认缩进设置(不归路系列:Python入门之旅-一定要注意缩进!!!推荐)

时间:2021-10-16 00:35:53类别:脚本大全

python默认缩进设置

不归路系列:Python入门之旅-一定要注意缩进!!!推荐

因为工作(懒惰),几年了,断断续续学习又半途而废了一个又一个技能。试着开始用博客记录学习过程中的问题和解决方式,以便激励自己和顺便万一帮助了别人呢。

最近面向对象写了个python类,到访问限制(私有属性)时竟然报错,好多天百思不得其姐,没啥破绽啊!代码如下,可就是报错!(后面有报错截图)

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • class person(object):
  •  
  •   def run(self):
  •     print("run")
  •  
  •   def eat(self,food):
  •     print("eat " + food)
  •  
  •   def say(self):
  •     print("my name is %s,i am %d years old" % (self.name,self.age))
  •  
  •  
  •   # 构造函数,创建对象时默认的初始化
  •   def __init__(self,name,age,height,weight,money):
  •     self.name = name
  •     self.age = age
  •     self.height = height
  •     self.weight = weight
  •     self.__money = money #实际上是_person__money
  •     print("哈喽!我是%s,我今年%d岁了。目前存款%f" %(self.name,self.age,self.__money))
  •     # 想要内部属性不被直接外部访问,属性前加__,就变成了私有属性private
  •     self.__money = 100
  •  
  •     # 私有属性需要定义get、set方法来访问和赋值
  •     def setmoney(self,money):
  •       if(money < 0):
  •         self.__money = 0
  •       else:
  •         self.__money = money
  •  
  •     def getmoney(self):
  •       return self.__money
  •  
  • person = person("小明", 5, 120, 28,93.1)
  •  
  • # 属性可直接被访问
  • person.age = 10
  • print(person.age)
  •  
  • # 私有属性不可直接被访问或赋值,因为解释器把__money变成了_person__money(可以用这个访问到私有属性的money,但是强烈建议不要),以下2行会报错
  • # person.money = 10
  • # print(person.__money)
  •  
  • # 可以调用内部方法访问和赋值
  • print(person.getmoney())
  • person.setmoney(-10)
  • print(person.getmoney())
  • excuse me?!咋个就没有,那不上面大大摆着俩内部方法嘛!

    python默认缩进设置(不归路系列:Python入门之旅-一定要注意缩进!!!推荐)

    昨天看着看着突然迸发了个小火星子,想起来缩进不对了,如图:

    python默认缩进设置(不归路系列:Python入门之旅-一定要注意缩进!!!推荐)

    把两个方法减一个缩进,就算是出来了,是类的方法,和__init__并列了,自然就正确了。

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • class person(object):
  •  
  •   def run(self):
  •     print("run")
  •  
  •   def eat(self,food):
  •     print("eat " + food)
  •  
  •   def say(self):
  •     print("my name is %s,i am %d years old" % (self.name,self.age))
  •  
  •  
  •   # 构造函数,创建对象时默认的初始化
  •   def __init__(self,name,age,height,weight,money):
  •     self.name = name
  •     self.age = age
  •     self.height = height
  •     self.weight = weight
  •     self.__money = money #实际上是_person__money
  •     print("哈喽!我是%s,我今年%d岁了。目前存款%f" %(self.name,self.age,self.__money))
  •     # 想要内部属性不被直接外部访问,属性前加__,就变成了私有属性private
  •     self.__money = 100
  •  
  •   # 私有属性需要定义get、set方法来访问和赋值
  •   def setmoney(self, money):
  •     if (money < 0):
  •       self.__money = 0
  •     else:
  •       self.__money = money
  •  
  •   def getmoney(self):
  •     return self.__money
  •  
  • person = person("小明", 5, 120, 28,93.1)
  •  
  • # 属性可直接被访问
  • person.age = 10
  • print(person.age)
  •  
  • # 私有属性不可直接被访问或赋值,因为解释器把__money变成了_person__money(可以用这个访问到私有属性的money,但是强烈建议不要),以下2行会报错
  • # person.money = 10
  • # print(person.__money)
  •  
  • # 可以调用内部方法访问和赋值
  • print(person.getmoney())
  • person.setmoney(-10)
  • print(person.getmoney())
  • python默认缩进设置(不归路系列:Python入门之旅-一定要注意缩进!!!推荐)

    总结下:一定要细心!细心!!再细心!!!

    注意缩进

    注意缩进

    注意缩进

    以上所述是小编给大家介绍的python入门一定要注意缩进详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对开心学习网网站的支持!

    原文链接:https://blog.csdn.net/weixin_37846886/article/details/89191156

    标签:
    上一篇下一篇

    猜您喜欢

    热门推荐