因为工作(懒惰),几年了,断断续续学习又半途而废了一个又一个技能。试着开始用博客记录学习过程中的问题和解决方式,以便激励自己和顺便万一帮助了别人呢。

最近面向对象写了个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?!咋个就没有,那不上面大大摆着俩内部方法嘛!

昨天看着看着突然迸发了个小火星子,想起来缩进不对了,如图:

把两个方法减一个缩进,就算是出来了,是类的方法,和__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入门之旅-一定要注意缩进!!!(推荐)...相关推荐

  1. python代码少的作品_原创 8行python代码展示程序员从入门到大神(或跑路)的全部状态...

    一行python代码可以做什么? 人生苦短,我用python.python的世界里无处不在的简洁和短小,往往一行代码可以实现很多有意思功能. 你敢想象你从入门python代码.网络达人.反重力怪才.爱 ...

  2. python中for循环缩进_跟小白学Python数据分析——For循环

    原标题:跟小白学Python数据分析--For循环 循环是指反复地连续做某件事,例如地球绕地轴自转一圈就是一天,自转的同时绕太阳公转一圈就是一年.周而复始,转了一圈又一圈,一次又一次地循环. 在编程过 ...

  3. python和网络运维_网络工程师的Python之路:网络运维自动化实战

    第1章 Python的安装和使用 1 1.1 安装Python 1 1.1.1 在Windows下安装Python 3.8.2 2 1.1.2 在Linux下安装Python 3.8.2 5 1.2 ...

  4. python第一周小测验_荐测验1: Python基本语法元素 (第1周)

    测验1: Python基本语法元素 (第1周) 选择题: 1.Guido van Rossum正式对外发布Python版本的年份是: A.2002 B.2008 C.1991 D.1998 正确答案 ...

  5. python语言程序设计难不难_零基础学Python编程开发难度大吗?从哪学起?

    转行零基础学Python编程开发难度大吗?从哪学起? 近期很多小伙伴问我,如果自己转行学习Python,完全0基础能否学会呢?Python的难度到底有多大? 今天,小编就来为大家详细解读一下这个问题. ...

  6. python科学计算教程视频_【P14】Python科学计算与图形渲染库视频课程视频教程 it教程...

    Python视频教程名称: Python科学计算与图形渲染库视频课程视频教程 Python视频教程 [IT视频教程网-www.itspjc.com] it教程 6 T6 ^9 L+ E4 C, }0 ...

  7. 趣学python教孩子学编程_《趣学Python——教孩子学编程》学习笔记第1-3章

    第1章 Python不是大蟒蛇 1.1 关于计算机语言 计算机程序是一组让计算机执行某种动作的指令.软件就是计算机程序的集合. 一种编程语言就是一种特定的与计算机交谈的方式,这种方式使用计算机和人都能 ...

  8. python计时器程序设计总框图_【怎么用python编写计时器?这个编程的方法你一定不要错过】- 环球网校...

    [摘要]现在学习python的人都在思考,怎么用python编写计时器?这个编程的方法你一定不要错过,环球网校小编建议大家可以试着自己编写功能性代码,毕竟实践出真知,所以你一定要知道怎么用python ...

  9. python 鱼c工作室作业_#鱼C工作室Python作业#图解python百度云

    最好的python视频教程谁有 我这里有python全套高清教学视频,非常适合新手小白,真实分享,望采纳点赞. python 网盘 python视频教程从入门到精通 有提取码:提取码:8ste 求一个 ...

最新文章

  1. VTK:图片之ImageContinuousDilate3D
  2. iphone微信美颜插件_iPhone、安卓微信自动更新,又有新功能?
  3. .NET EFCore之增删改查
  4. Exp3 免杀原理与实践 20164309
  5. 如何使用Quartz Scheduler和日志记录创建Web应用程序
  6. K8s创建pod yaml文件详解
  7. webpack4.0各个击破(5)—— Module篇
  8. 图解金山网盾3.6下载保护实现原理
  9. 设计模式之单例模式8种实现方式,其六:双重检查
  10. CentOS 6 忘记root密码的修改方法
  11. oozie JAVA Client 编程提交作业
  12. SPSS入门教程——合并文件添加变量匹配数据的方法
  13. mac java 配置环境变量配置_Mac 配置环境变量的方法
  14. 浏览器书签栏的小图标设置
  15. 糖友每天早上坚持去做这4件事情控糖事倍功半。
  16. 4836: [Lydsy1704月赛]二元运算(cdq分治 FFT)
  17. 每天学命令deleteRow
  18. Unity通过脚本实现不规则多边形的碰撞检测
  19. ISO/IEC 25010软件质量评价模型
  20. 学历学籍系统-Web服务开发实验(REST API)

热门文章

  1. ymPrompt.js消息提示组件
  2. 开源 java CMS - FreeCMS2.6 模型管理
  3. 使用fliter实现ie下css中rgba的效果
  4. 使用turtlebot来实现多点导航跟踪的问题
  5. Yahoo前端优化性能规则
  6. Android短信操作(通过内容提供者)
  7. Sysinternals Suite 2012.06.28软件简介
  8. DIY敷脸亲身示范做法 - 生活至上,美容至尚!
  9. 继续- 管理百人研发团队的烦恼(下)
  10. linux c 获取网络接口信息 ioct l函数 ifreq ifconf 结构体 简介