不归路系列: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的Django框架中获取单个对象数据的简单方法
Jul 17 Python
解决Python传递中文参数的问题
Aug 04 Python
python实现BackPropagation算法
Dec 14 Python
如何利用Python分析出微信朋友男女统计图
Jan 25 Python
在pycharm中配置Anaconda以及pip源配置详解
Sep 09 Python
Python 实现opencv所使用的图片格式与 base64 转换
Jan 09 Python
python实现提取str字符串/json中多级目录下的某个值
Feb 27 Python
Flask缓存静态文件的具体方法
Aug 02 Python
Python pip使用超时问题解决方案
Aug 03 Python
Python如何使用input函数获取输入
Aug 06 Python
Python colormap库的安装和使用详情
Oct 06 Python
python tqdm实现进度条的示例代码
Nov 10 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中如何实现常用邮箱的基本判断
2014/01/07 PHP
php中最简单的字符串匹配算法
2014/12/16 PHP
php自定义urlencode,urldecode函数实例
2015/03/24 PHP
php微信开发接入
2016/08/27 PHP
php版阿里大于(阿里大鱼)短信发送实例详解
2016/11/30 PHP
YUI Compressor压缩JavaScript原理及微优化
2013/01/07 Javascript
javascript中强制执行toString()具体实现
2013/04/27 Javascript
基于jquery实现拆分姓名的方法(纯JS版)
2013/05/08 Javascript
ie浏览器使用js导出网页到excel并打印
2014/03/11 Javascript
JS+CSS实现自动改变切换方向图片幻灯切换效果的方法
2015/03/02 Javascript
js实现非常棒的弹出div
2016/10/06 Javascript
jQuery实现花式轮播之圣诞节礼物传送效果
2016/12/25 Javascript
浅谈javascript中的事件冒泡和事件捕获
2016/12/28 Javascript
jQuery 全选 全不选 事件绑定的实现代码
2017/01/23 Javascript
JavaScrip数组删除特定元素的几种方法总结
2017/09/06 Javascript
小程序实现单选多选功能
2018/11/04 Javascript
Angular请求防抖处理第一次请求失效问题
2019/05/17 Javascript
vue 组件销毁并重置的实现
2020/01/13 Javascript
Vue中通过vue-router实现命名视图的问题
2020/04/23 Javascript
v-slot和slot、slot-scope之间相互替换实例
2020/09/04 Javascript
python快速排序代码实例
2013/11/21 Python
python检测服务器是否正常
2014/02/16 Python
Python的Bottle框架中返回静态文件和JSON对象的方法
2015/04/30 Python
Python+树莓派+YOLO打造一款人工智能照相机
2018/01/02 Python
python计算列表内各元素的个数实例
2018/06/29 Python
用Python实现最速下降法求极值的方法
2019/07/10 Python
python微信公众号开发简单流程实现
2020/03/09 Python
在python中使用nohup命令说明
2020/04/16 Python
python 字符串的驻留机制及优缺点
2020/06/19 Python
idea2020手动安装python插件的实现方法
2020/07/17 Python
Spartoo芬兰:欧洲最大的网上鞋店
2016/08/28 全球购物
校园网站的创业计划书范文
2013/12/30 职场文书
环保建议书500字
2014/05/14 职场文书
事业单位年度考核评语
2014/12/31 职场文书
评职称个人总结
2015/03/05 职场文书
九年级数学教学反思
2016/02/17 职场文书