不归路系列: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 paramiko实现ssh远程访问的方法
Dec 03 Python
跟老齐学Python之赋值,简单也不简单
Sep 24 Python
Python读取sqlite数据库文件的方法分析
Aug 07 Python
Python 3.6 性能测试框架Locust安装及使用方法(详解)
Oct 11 Python
Python类和对象的定义与实际应用案例分析
Dec 27 Python
通过python实现弹窗广告拦截过程详解
Jul 10 Python
Django模型修改及数据迁移实现解析
Aug 01 Python
Python代理IP爬虫的新手使用教程
Sep 05 Python
pygame实现烟雨蒙蒙下彩虹雨
Nov 11 Python
Python基于yaml文件配置logging日志过程解析
Jun 23 Python
基于python实现音乐播放器代码实例
Jul 01 Python
Python读取文件夹下的所有文件实例代码
Apr 02 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
图书管理程序(三)
2006/10/09 PHP
php面向对象中static静态属性与方法的内存位置分析
2015/02/08 PHP
php简单创建zip压缩文件的方法
2016/04/30 PHP
CI框架实现优化文件上传及多文件上传的方法
2017/01/04 PHP
PHP使用ActiveMQ实现消息队列的方法详解
2019/05/31 PHP
PHP 实现缩略图
2021/03/09 PHP
仿当当网淘宝网等主流电子商务网站商品分类导航菜单
2013/09/25 Javascript
AngularJS入门教程之Hello World!
2014/12/06 Javascript
javascript面向对象之this关键词用法分析
2015/01/13 Javascript
Jquery+Ajax+PHP+MySQL实现分类列表管理(下)
2015/10/28 Javascript
基于jQuery实现拖拽图标到回收站并删除功能
2015/11/25 Javascript
jQuery选择器基础入门教程
2016/05/10 Javascript
JavaScript编写Chrome扩展实现与浏览器的交互及时间通知
2016/05/16 Javascript
js实现文本上下来回滚动
2017/02/03 Javascript
Angular.js指令学习中一些重要属性的用法教程
2017/05/24 Javascript
微信小程序实现验证码获取倒计时效果
2018/02/08 Javascript
实例讲解React 组件
2020/07/07 Javascript
简单谈谈python中的Queue与多进程
2016/08/25 Python
python 获取键盘输入,同时有超时的功能示例
2018/11/13 Python
Python从Excel中读取日期一列的方法
2018/11/28 Python
python文件拆分与重组实例
2018/12/10 Python
python requests post多层字典的方法
2018/12/27 Python
Python+AutoIt实现界面工具开发过程详解
2019/08/07 Python
python函数声明和调用定义及原理详解
2019/12/02 Python
Python 生成VOC格式的标签实例
2020/03/10 Python
利用Python自动化操作AutoCAD的实现
2020/04/01 Python
阿玛瑞酒店中文官方网站:Amari.com
2018/02/13 全球购物
Yahoo的PHP面试题
2014/05/26 面试题
20年同学聚会感言
2014/02/03 职场文书
关于环保的标语
2014/06/13 职场文书
幼儿园家长安全责任书
2014/07/22 职场文书
户籍证明书标准模板
2014/09/10 职场文书
大学生求职意向书
2015/05/11 职场文书
党员转正意见怎么写
2015/06/03 职场文书
ajax请求前端跨域问题原因及解决方案
2021/10/16 Javascript
vue3.0 数字翻牌组件的使用方法详解
2022/04/20 Vue.js