不归路系列: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 相关文章推荐
解读Django框架中的低层次缓存API
Jul 24 Python
Pythont特殊语法filter,map,reduce,apply使用方法
Feb 27 Python
Python实现二分查找与bisect模块详解
Jan 13 Python
Python3.5文件读与写操作经典实例详解
May 01 Python
Python依赖包整体迁移方法详解
Aug 15 Python
pytorch 自定义数据集加载方法
Aug 18 Python
在python3中实现更新界面
Feb 21 Python
Python之Django自动实现html代码(下拉框,数据选择)
Mar 13 Python
如何在Anaconda中打开python自带idle
Sep 21 Python
利用django创建一个简易的博客网站的示例
Sep 29 Python
使用pandas实现筛选出指定列值所对应的行
Dec 13 Python
Python+SeaTable实现计算两个日期间的工作日天数
Jul 07 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
php循环创建目录示例分享(php创建多级目录)
2014/03/04 PHP
PHP之autoload运行机制实例分析
2014/08/28 PHP
CI框架学习笔记(一) - 环境安装、基本术语和框架流程
2014/10/26 PHP
使用图灵api创建微信聊天机器人
2015/07/23 PHP
PHP实现多维数组转字符串和多维数组转一维数组的方法
2015/08/08 PHP
PHP生成随机数的方法总结
2018/03/01 PHP
jquery插件jbox使用iframe关闭问题
2009/02/09 Javascript
JS中setInterval、setTimeout不能传递带参数的函数的解决方案
2013/04/28 Javascript
了不起的node.js读书笔记之mongodb数据库交互
2014/12/22 Javascript
简介JavaScript中fixed()方法的使用
2015/06/08 Javascript
AngularJS基础 ng-value 指令简单示例
2016/08/03 Javascript
js学习笔记之事件处理模型
2016/10/31 Javascript
vuejs2.0运用原生js实现简单的拖拽元素功能示例
2017/02/24 Javascript
Bootstrap fileinput文件上传预览插件使用详解
2017/05/16 Javascript
vue实现点击图片放大效果
2017/08/15 Javascript
JS沙箱模式实例分析
2017/09/04 Javascript
浅谈React Native 传参的几种方式(小结)
2019/05/21 Javascript
用云开发Cloudbase实现小程序多图片内容安全监测的代码详解
2020/06/07 Javascript
uniapp微信小程序实现一个页面多个倒计时
2020/11/01 Javascript
Javascript执行上下文顺序的深入讲解
2020/11/04 Javascript
python不带重复的全排列代码
2013/08/13 Python
跟老齐学Python之大话题小函数(1)
2014/10/10 Python
线程和进程的区别及Python代码实例
2015/02/04 Python
Python迭代和迭代器详解
2016/11/10 Python
在Pytorch中使用Mask R-CNN进行实例分割操作
2020/06/24 Python
求职简历的自我评价怎样写好
2013/10/07 职场文书
大学生村官心得体会范文
2014/01/04 职场文书
个人函授自我鉴定
2014/03/25 职场文书
学校火灾防控方案
2014/06/09 职场文书
乡镇党委书记第三阶段个人整改措施
2014/09/16 职场文书
运动会搞笑广播稿
2014/10/14 职场文书
计算机实训报告范文
2014/11/05 职场文书
创先争优个人总结
2015/03/04 职场文书
Java Dubbo框架知识点梳理
2021/06/26 Java/Android
Java常用函数式接口总结
2021/06/29 Java/Android
Linux磁盘管理方法介绍
2022/06/01 Servers