不归路系列: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脚本在Appium库上对移动应用实现自动化测试
Apr 17 Python
浅谈python中的__init__、__new__和__call__方法
Jul 18 Python
Python3多线程爬虫实例讲解代码
Jan 05 Python
Python深度优先算法生成迷宫
Jan 22 Python
python实现二叉查找树实例代码
Feb 08 Python
python list删除元素时要注意的坑点分享
Apr 18 Python
解决python写入mysql中datetime类型遇到的问题
Jun 21 Python
python适合人工智能的理由和优势
Jun 28 Python
Python基于Opencv来快速实现人脸识别过程详解(完整版)
Jul 11 Python
django组合搜索实现过程详解(附代码)
Aug 06 Python
详解pycharm配置python解释器的问题
Oct 15 Python
matplotlib部件之套索Lasso的使用
Feb 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
php对mongodb的扩展(初出茅庐)
2012/11/11 PHP
laravel-admin 管理平台获取当前登陆用户信息的例子
2019/10/08 PHP
PHP7 参数处理机制修改
2021/03/09 PHP
jqPlot Option配置对象详解
2009/07/25 Javascript
JavaScript 高效运行代码分析
2010/03/18 Javascript
alert中断settimeout计时功能
2013/07/26 Javascript
JavaScript实现的购物车效果可以运用在好多地方
2014/05/09 Javascript
Node.js(安装,启动,测试)
2014/06/09 Javascript
javascript日期格式化方法小结
2015/12/17 Javascript
Bootstrap与Angularjs的模态框实例代码
2017/08/03 Javascript
详细介绍RxJS在Angular中的应用
2017/09/23 Javascript
JavaScript实现打印星型金字塔功能实例分析
2017/09/27 Javascript
axios发送post请求springMVC接收不到参数的解决方法
2018/03/05 Javascript
新手如何快速理解js异步编程
2019/06/24 Javascript
ES6学习笔记之let与const用法实例分析
2020/01/22 Javascript
微信小程序实现带放大效果的轮播图
2020/05/26 Javascript
JavaScript事件委托实现原理及优点进行
2020/08/29 Javascript
[48:27]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
python访问sqlserver示例
2014/02/10 Python
详解Python中的__init__和__new__
2014/03/12 Python
Python编写屏幕截图程序方法
2015/02/18 Python
tensorflow获取变量维度信息
2018/03/10 Python
Python高斯消除矩阵
2019/01/02 Python
python开发准备工作之配置虚拟环境(非常重要)
2019/02/11 Python
Python 实现两个服务器之间文件的上传方法
2019/02/13 Python
基于树莓派的语音对话机器人
2019/06/17 Python
python线程定时器Timer实现原理解析
2019/11/30 Python
如何从csv文件构建Tensorflow的数据集
2020/09/21 Python
英国户外服装、鞋类和设备的领先零售商:Millets
2020/10/12 全球购物
如何定义一个可复用的服务
2014/09/30 面试题
工程部经理岗位职责
2013/12/08 职场文书
小学毕业家长寄语
2014/01/19 职场文书
函授本科自我鉴定
2014/02/04 职场文书
岗位聘任书范文
2014/03/29 职场文书
导游词欢迎词
2015/02/02 职场文书
CSS3 制作的书本翻页特效
2021/04/13 HTML / CSS