不归路系列: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演示数型数据结构的教程
Apr 03 Python
详解python eval函数的妙用
Nov 16 Python
pandas.DataFrame.to_json按行转json的方法
Jun 05 Python
Python实现获取本地及远程图片大小的方法示例
Jul 21 Python
Python面向对象之类和对象属性的增删改查操作示例
Dec 14 Python
pandas 数据结构之Series的使用方法
Jun 21 Python
如何通过Python实现标签云算法
Jul 02 Python
教你如何编写、保存与运行Python程序的方法
Jul 12 Python
pycharm 批量修改变量名称的方法
Aug 01 Python
pytorch 求网络模型参数实例
Dec 30 Python
Python eval函数原理及用法解析
Nov 14 Python
python里反向传播算法详解
Nov 22 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文件操作的详解
2013/06/05 PHP
php lcg_value与mt_rand生成0~1随机小数的效果对比分析
2017/04/05 PHP
PHP获取数组中指定的一列实例
2017/12/27 PHP
php+redis消息队列实现抢购功能
2018/02/08 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
2019/11/23 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
jquery CSS选择器笔记
2010/03/29 Javascript
JavaScript计算字符串中每个字符出现次数的小例子
2013/07/02 Javascript
编程语言JavaScript简介
2014/10/16 Javascript
详解Angular结合zTree异步加载节点数据
2018/01/20 Javascript
在vue项目中使用sass的配置方法
2018/03/20 Javascript
说说node中的可读流和可写流的区别
2018/06/01 Javascript
详解Node.js 中使用 ECDSA 签名遇到的坑
2018/11/26 Javascript
vue与bootstrap实现简单用户信息添加删除功能
2019/02/15 Javascript
vue的滚动条插件实现代码
2019/09/07 Javascript
通过js实现压缩图片上传功能
2020/02/25 Javascript
打印出python 当前全局变量和入口参数的所有属性
2009/07/01 Python
Python iter()函数用法实例分析
2018/03/17 Python
python dataframe astype 字段类型转换方法
2018/04/11 Python
解决Python requests库编码 socks5代理的问题
2018/05/07 Python
python使用zip将list转为json的方法
2018/12/31 Python
Python代码实现删除一个list里面重复元素的方法
2019/04/02 Python
django框架基于模板 生成 excel(xls) 文件操作示例
2019/06/19 Python
tensorflow实现训练变量checkpoint的保存与读取
2020/02/10 Python
Python打包工具PyInstaller的安装与pycharm配置支持PyInstaller详细方法
2020/02/27 Python
python函数调用,循环,列表复制实例
2020/05/03 Python
python如何更新包
2020/06/11 Python
HTML5 Canvas渐进填充与透明实现图像的Mask效果
2013/07/11 HTML / CSS
荷兰优雅女装网上商店:Heine
2016/11/14 全球购物
中国跨境电商:Tomtop
2017/03/16 全球购物
英国领先的电子、技术和办公用品购物网站:Ebuyer
2018/04/04 全球购物
出纳岗位职责
2013/11/09 职场文书
我的网上商城创业计划书
2013/12/26 职场文书
工伤事故赔偿协议书
2014/04/15 职场文书
2015财务年度工作总结范文
2015/05/04 职场文书
B站评分公认最好看的动漫,你的名字评分9.9,第六备受喜欢
2022/03/18 日漫