不归路系列: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实现查找系统盘中需要找的字符
Jul 14 Python
python实现折半查找和归并排序算法
Apr 14 Python
Python中文分词工具之结巴分词用法实例总结【经典案例】
Apr 15 Python
在IPython中进行Python程序执行时间的测量方法
Nov 01 Python
python 定时器,轮询定时器的实例
Feb 20 Python
Django 缓存配置Redis使用详解
Jul 23 Python
使用python制作一个解压缩软件
Nov 13 Python
django框架两个使用模板实例
Dec 11 Python
pandas参数设置的实用小技巧
Aug 23 Python
python关于倒排列的知识点总结
Oct 13 Python
python中PyQuery库用法分享
Jan 15 Python
python区块链实现简版工作量证明
May 25 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
图解上海144收音机
2021/03/02 无线电
Php连接及读取和写入mysql数据库的常用代码
2014/08/11 PHP
PHP全局变量与超级全局变量区别分析
2016/04/01 PHP
浅析js封装和作用域
2013/07/09 Javascript
javascript页面上使用动态时间具体实现
2014/03/18 Javascript
点击标签切换和自动切换DIV选项卡
2014/08/10 Javascript
jquery Validation表单验证使用详解
2020/09/12 Javascript
javascript中sort() 方法使用详解
2015/08/30 Javascript
深入分析Javascript事件代理
2016/01/30 Javascript
Node.js程序中的本地文件操作用法小结
2016/03/06 Javascript
jQuery 翻页组件yunm.pager.js实现div局部刷新的思路
2016/08/11 Javascript
js实现前端分页页码管理
2017/01/06 Javascript
JavaScript实现树的遍历算法示例【广度优先与深度优先】
2017/10/26 Javascript
vue2.0$nextTick监听数据渲染完成之后的回调函数方法
2018/09/11 Javascript
微信实现自动跳转到用其他浏览器打开指定APP下载
2019/02/15 Javascript
Vue实现table上下移动功能示例
2019/02/21 Javascript
jQuery实现的导航条点击后高亮显示功能示例
2019/03/04 jQuery
浅入深出Vue之组件使用
2019/07/11 Javascript
详解vue-cli项目开发/生产环境代理实现跨域请求
2019/07/23 Javascript
Vue向后台传数组数据,springboot接收vue传的数组数据实例
2020/11/12 Javascript
Python中的index()方法使用教程
2015/05/18 Python
python获取酷狗音乐top500的下载地址 MP3格式
2018/04/17 Python
Pandas Shift函数的基础入门学习笔记
2018/11/16 Python
Python面向对象总结及类与正则表达式详解
2019/04/18 Python
ERLANG和PYTHON互通实现过程详解
2019/07/05 Python
python 实现手机自动拨打电话的方法(通话压力测试)
2019/08/08 Python
Python基于gevent实现高并发代码实例
2020/05/15 Python
HTML5自定义属性的问题分析
2019/08/16 HTML / CSS
时尚休闲吧创业计划书
2014/01/25 职场文书
教师考察材料范文
2014/06/03 职场文书
感恩教育月活动总结
2014/07/07 职场文书
2014年党支部书记工作总结
2014/12/04 职场文书
个园导游词
2015/02/04 职场文书
繁星春水读书笔记
2015/06/30 职场文书
护士业务学习心得体会
2016/01/25 职场文书
Linux中文件的基本属性介绍
2022/06/01 Servers