不归路系列: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实现的文件夹清理程序分享
Nov 22 Python
Python中使用md5sum检查目录中相同文件代码分享
Feb 02 Python
在Docker上开始部署Python应用的教程
Apr 17 Python
python 采集中文乱码问题的完美解决方法
Sep 27 Python
python数字图像处理实现直方图与均衡化
May 04 Python
利用python画出折线图
Jul 26 Python
python队列Queue的详解
May 10 Python
python画图把时间作为横坐标的方法
Jul 07 Python
python openCV实现摄像头获取人脸图片
Aug 20 Python
Python中的None与 NULL(即空字符)的区别详解
Sep 24 Python
python 写一个性能测试工具(一)
Oct 24 Python
Python实现DBSCAN聚类算法并样例测试
Jun 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中的排序函数sort、asort、rsort、krsort、ksort区别分析
2014/08/18 PHP
PHP使用MPDF类生成PDF的方法
2015/12/08 PHP
javascript preload&amp;lazy load
2010/05/13 Javascript
textarea中的手动换行处理的jquery代码
2011/02/26 Javascript
javascript关于继承的用法汇总
2014/12/20 Javascript
jQuery中on()方法用法实例
2015/01/19 Javascript
深入理解JavaScript系列(30):设计模式之外观模式详解
2015/03/03 Javascript
javascript表格隔行变色加鼠标移入移出及点击效果的方法
2015/04/10 Javascript
jquery实现选中单选按钮下拉伸缩效果
2015/08/06 Javascript
JS实现响应鼠标点击动画渐变弹出层效果代码
2016/03/25 Javascript
过期软件破解办法实例详解
2017/01/04 Javascript
JS实现iframe自适应高度的方法示例
2017/01/07 Javascript
jQuery实现动态生成表格并为行绑定单击变色动作的方法
2017/04/17 jQuery
jQuery绑定事件方法及区别(bind,click,on,live,one)
2017/08/14 jQuery
Angularjs中ng-repeat的简单实例
2017/08/25 Javascript
Node.js+jade+mongodb+mongoose实现爬虫分离入库与生成静态文件的方法
2017/09/20 Javascript
微信小程序wx.uploadfile 本地文件转base64的实现代码
2018/06/28 Javascript
利用Blob进行文件上传的完整步骤
2018/08/02 Javascript
详解vue路由篇(动态路由、路由嵌套)
2019/01/27 Javascript
[48:22]VGJ.S vs VG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python常规方法实现数组的全排列
2015/03/17 Python
Python递归函数定义与用法示例
2017/06/02 Python
python:接口间数据传递与调用方法
2018/12/17 Python
Django forms表单 select下拉框的传值实例
2019/07/19 Python
使用OpCode绕过Python沙箱的方法详解
2019/09/03 Python
python智联招聘爬虫并导入到excel代码实例
2019/09/09 Python
jenkins配置python脚本定时任务过程图解
2019/10/29 Python
彻底搞懂python 迭代器和生成器
2020/09/07 Python
html5中使用hotcss.js实现手机端自适配的方法
2020/04/23 HTML / CSS
BCBG官网:BCBGMAXAZRIA
2017/12/29 全球购物
韩国江南富人区高端时尚百货商场:Galleria(格乐丽雅)
2018/03/27 全球购物
GetYourGuide台湾:预订旅游活动、景点和旅游项目
2019/06/10 全球购物
Juice Beauty官网:有机美容产品,护肤与化妆品
2020/06/13 全球购物
信用卡逾期证明示例
2014/09/13 职场文书
2014年幼儿园教研工作总结
2014/12/04 职场文书
Python编写冷笑话生成器
2022/04/20 Python