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


Posted in Python onApril 16, 2019

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

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

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入门之旅-一定要注意缩进!!!(推荐)

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

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 相关文章推荐
Python lxml模块安装教程
Jun 02 Python
通过Python使用saltstack生成服务器资产清单
Mar 01 Python
详解Python实现多进程异步事件驱动引擎
Aug 25 Python
python中的随机函数random的用法示例
Jan 27 Python
Python解析json时提示“string indices must be integers”问题解决方法
Jul 31 Python
详解如何从TensorFlow的mnist数据集导出手写体数字图片
Aug 05 Python
PyQt 图解Qt Designer工具的使用方法
Aug 06 Python
python函数的作用域及关键字详解
Aug 20 Python
基于python解线性矩阵方程(numpy中的matrix类)
Oct 21 Python
Python 读取有公式cell的结果内容实例方法
Feb 17 Python
解决Keras中CNN输入维度报错问题
Jun 29 Python
python操作ini类型配置文件的实例教程
Oct 30 Python
python接口自动化(十六)--参数关联接口后传(详解)
Apr 16 #Python
Python实现连接MySql数据库及增删改查操作详解
Apr 16 #Python
Python3.6实现带有简单界面的有道翻译小程序
Apr 16 #Python
python实现扫描局域网指定网段ip的方法
Apr 16 #Python
python实现扫描ip地址的小程序
Apr 16 #Python
使用Python制作简单的小程序IP查看器功能
Apr 16 #Python
Python使用POP3和SMTP协议收发邮件的示例代码
Apr 16 #Python
You might like
第五节 克隆 [5]
2006/10/09 PHP
php设计模式 State (状态模式)
2011/06/26 PHP
一个php生成16位随机数的代码(两种方法)
2014/09/16 PHP
11个PHPer必须要了解的编程规范
2014/09/22 PHP
php准确计算复活节日期的方法
2015/04/18 PHP
仿163填写邮件地址自动显示下拉(无优化)
2008/11/05 Javascript
JS来动态的修改url实现对url的增删查改
2014/09/05 Javascript
vue-hook-form使用详解
2017/04/07 Javascript
微信小程序实现瀑布流布局与无限加载的方法详解
2017/05/12 Javascript
Javascript实现找不同色块的游戏
2017/07/17 Javascript
ES6解构赋值实例详解
2017/10/31 Javascript
Vue项目中添加锁屏功能实现思路
2018/06/29 Javascript
JS内部事件机制之单线程原理
2018/07/02 Javascript
vue.draggable实现表格拖拽排序效果
2018/12/01 Javascript
JavaScript偏函数与柯里化实例详解
2019/03/27 Javascript
Element-ui自定义table表头、修改列标题样式、添加tooltip、:render-header使用
2019/04/11 Javascript
vue-cli3项目展示本地Markdown文件的方法
2019/06/07 Javascript
中级前端工程师必须要掌握的27个JavaScript 技巧(干货总结)
2019/09/23 Javascript
javascript实现获取中文汉字拼音首字母
2020/05/19 Javascript
使用Python解析JSON数据的基本方法
2015/10/15 Python
python将处理好的图像保存到指定目录下的方法
2019/01/10 Python
Scrapy-Redis结合POST请求获取数据的方法示例
2019/05/07 Python
使用tensorflow实现矩阵分解方式
2020/02/07 Python
Python实现中英文全文搜索的示例
2020/12/04 Python
基于HTML5+Webkit实现树叶飘落动画
2017/12/28 HTML / CSS
html5 canvas绘制网络字体的常用方法
2019/08/26 HTML / CSS
揭牌仪式主持词
2014/03/19 职场文书
2014年大学生四年规划书范文
2014/04/03 职场文书
纪念九一八事变演讲稿1000字
2014/09/14 职场文书
2014年十一国庆节爱国演讲稿
2014/09/23 职场文书
接待员岗位职责范本
2015/04/15 职场文书
幼儿园卫生保健制度
2015/08/05 职场文书
个人的事迹材料怎么写
2019/04/24 职场文书
扩展多台相同的Web服务器
2021/04/01 Servers
Java框架入门之简单介绍SpringBoot框架
2021/06/18 Java/Android
Python+OpenCV实现在图像上绘制矩形
2022/03/21 Python