不归路系列: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使用正则表达式检测密码强度源码分享
Jun 11 Python
gearman的安装启动及python API使用实例
Jul 08 Python
Python模仿POST提交HTTP数据及使用Cookie值的方法
Nov 10 Python
python去除字符串中的换行符
Oct 11 Python
浅谈python迭代器
Nov 08 Python
使用celery执行Django串行异步任务的方法步骤
Jun 06 Python
PyQt5 QTableView设置某一列不可编辑的方法
Jun 25 Python
Python实现AI自动抠图实例解析
Mar 05 Python
Python动态强类型解释型语言原理解析
Mar 25 Python
Python实现RabbitMQ6种消息模型的示例代码
Mar 30 Python
python打开音乐文件的实例方法
Jul 21 Python
Python中递归以及递归遍历目录详解
Oct 24 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
咖啡的种类和口感
2021/03/03 新手入门
轻松入门: 煮好咖啡的七个诀窍
2021/03/03 冲泡冲煮
简单的php写入数据库类代码分享
2011/07/26 PHP
codeigniter框架The URI you submitted has disallowed characters错误解决方法
2014/05/06 PHP
PHP中构造函数和析构函数解析
2014/10/10 PHP
PHP使用array_multisort对多个数组或多维数组进行排序
2014/12/16 PHP
php curl请求信息和返回信息设置代码实例
2015/04/27 PHP
PHP开发Apache服务器配置
2015/07/15 PHP
基于PHP技术开发客服工单系统
2016/01/06 PHP
PHP使用SMTP邮件服务器发送邮件示例
2018/08/28 PHP
javascript实现限制上传文件大小
2015/02/06 Javascript
JavaScript对象属性检查、增加、删除、访问操作实例
2015/07/08 Javascript
JS实现的最简Table选项卡效果
2015/10/14 Javascript
JavaScript简单获取页面图片原始尺寸的方法
2016/06/21 Javascript
jQuery ajaxSubmit 实现ajax提交表单局部刷新
2016/07/04 Javascript
jquery实现手机端单店铺购物车结算删除功能
2017/02/22 Javascript
JavaScript使用递归和循环实现阶乘的实例代码
2018/08/28 Javascript
详解从0开始搭建微信小程序(前后端)的全过程
2019/04/15 Javascript
解决vue-cli webpack打包开启Gzip 报错问题
2019/07/24 Javascript
vue-cli脚手架的.babelrc文件用法说明
2020/09/11 Javascript
centos 下面安装python2.7 +pip +mysqld
2014/11/18 Python
python+selenium打印当前页面的titl和url方法
2018/06/22 Python
Python字典生成式、集合生成式、生成器用法实例分析
2020/01/07 Python
Pycharm中import torch报错的快速解决方法
2020/03/05 Python
基于python图书馆管理系统设计实例详解
2020/08/05 Python
Django中日期时间型字段进行年月日时分秒分组统计
2020/11/27 Python
python爬虫scrapy框架之增量式爬虫的示例代码
2021/02/26 Python
关于PySnooper 永远不要使用print进行调试的问题
2021/03/04 Python
美国户外烹饪产品购物网站:Outdoor Cooking
2020/01/10 全球购物
销售辞职报告范文
2014/01/12 职场文书
护士实习求职信
2014/06/22 职场文书
十八大标语口号
2014/10/09 职场文书
2014年连锁店圣诞节活动方案
2014/12/09 职场文书
终止劳动合同通知书
2015/04/16 职场文书
2019年大学生学年自我鉴定!
2019/03/25 职场文书
解决Navicat for MySQL 连接 MySQL 报2005错误的问题
2021/05/29 MySQL