不归路系列: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中用Decorator来简化元编程的教程
Apr 13 Python
Python工程师面试题 与Python基础语法相关
Jan 14 Python
Python中max函数用于二维列表的实例
Apr 03 Python
python版本的仿windows计划任务工具
Apr 30 Python
python 筛选数据集中列中value长度大于20的数据集方法
Jun 14 Python
Python类的继承用法示例
Jan 31 Python
Django项目使用CircleCI的方法示例
Jul 14 Python
Django之模板层的实现代码
Sep 09 Python
django中url映射规则和服务端响应顺序的实现
Apr 02 Python
Jupyter notebook快速入门教程(推荐)
May 18 Python
Django 解决distinct无法去除重复数据的问题
May 20 Python
python3.6.8 + pycharm + PyQt5 环境搭建的图文教程
Jun 11 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文档更新介绍
2011/07/22 PHP
查找mysql字段中固定字符串并替换的几个方法
2012/09/23 PHP
PHP面试题之文件目录操作
2015/10/15 PHP
thinkphp5 URL和路由的功能详解与实例
2017/12/26 PHP
另类调用flash无须激活的方法
2006/12/27 Javascript
jQuery 相关控件的事件操作分解
2009/08/03 Javascript
简短几句jquery代码的实现一个图片向上滚动切换
2011/09/02 Javascript
js+CSS实现弹出居中背景半透明div层的方法
2015/02/26 Javascript
四种参数传递的形式——URL,超链接,js,form表单
2015/07/24 Javascript
简单实现JS计算器功能
2016/12/21 Javascript
vuejs父子组件通信的问题
2017/01/11 Javascript
Vue.js bootstrap前端实现分页和排序
2017/03/10 Javascript
基于Vue的SPA动态修改页面title的方法(推荐)
2018/01/02 Javascript
基于Vue.js与WordPress Rest API构建单页应用详解
2019/09/16 Javascript
ES2020 新特性(种草)
2020/01/12 Javascript
如何使用gpu.js改善JavaScript的性能
2020/12/01 Javascript
[47:02]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS paiN
2018/03/30 DOTA
Python中字符串的处理技巧分享
2016/09/17 Python
在centos7中分布式部署pyspider
2017/05/03 Python
对python 数据处理中的LabelEncoder 和 OneHotEncoder详解
2018/07/11 Python
使用pycharm设置控制台不换行的操作方法
2019/01/19 Python
基于sklearn实现Bagging算法(python)
2019/07/11 Python
解决tensorflow由于未初始化变量而导致的错误问题
2020/01/06 Python
python3判断IP地址的方法
2021/03/04 Python
编写html5时调试发现脚本php等网页js、css等失效
2013/12/31 HTML / CSS
ASOS比利时:英国线上零售商及自有品牌
2018/07/29 全球购物
奥地利手表、香水、化妆品和珠宝购物网站:Brasty.at
2021/01/17 全球购物
中专生自我鉴定范文
2013/12/19 职场文书
领导证婚人证婚词
2014/01/13 职场文书
赔偿协议书范本
2014/04/15 职场文书
《少年王勃》教学反思
2014/04/27 职场文书
班级文化建设标语
2014/06/23 职场文书
模具设计与制造专业求职信
2014/07/19 职场文书
离婚协议书包括哪些内容
2014/10/16 职场文书
2014年车间主任工作总结
2014/12/10 职场文书
CentOS8.4安装Redis6.2.6的详细过程
2021/11/20 Redis