不归路系列:Python入门之旅-一定要注意缩进!!!(推荐)
作者:盖了个张 发布时间:2021-07-08 07:35:00
标签:Python,缩进
因为工作(懒惰),几年了,断断续续学习又半途而废了一个又一个技能。试着开始用博客记录学习过程中的问题和解决方式,以便激励自己和顺便万一帮助了别人呢。
最近面向对象写了个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入门一定要注意缩进详解整合网站的支持!
来源:https://blog.csdn.net/weixin_37846886/article/details/89191156
0
投稿
猜你喜欢
- 使用windows API使用PIL中的ImageGrab模块下面对两者的特点和用法进行详细解释。一、Python调用windows API
- 1,IE使用attachEvent/detachEvent方法来添加和删除事件 * ;w3c使用addEventListener/remov
- 这是一张灵异事件图。。。开个玩笑,这就是一张普通的图片。毫无疑问,上面的那副图画看起来像一幅电脑背景图片。这些都归功于我的妹妹,她能够将一些
- Opencv-Python图像透视变换cv2.warpPerspective代码如下:# -*- coding:utf-8 -*-impor
- Python字符编码目前计算机内存的字符编码都是Unicode,目前国内的windows操作系统采用的是gbk。python2默认的字符编码
- MySQL 表别名(Alias)SQL 表别名在 SQL 语句中,可以为表名称及字段(列)名称指定别名(Alias),别名是 SQL 标准语
- 使用auto.js实现自动化每日打卡疫情原因,需要在家每天定时打卡,每天刚起床的时候避免不了出现注意力不集中或者是看不到app,点不到按钮什
- 查询数据库SELECT * FROM `student`查询结果idnamebirthday1张三1970-10-012李四1990-10-
- 当使用for语句循环(迭代)pandas.DataFrame时,简单的使用for语句便可以取得返回列名,因此使用重复使用for方法,便可以获
- 每每见到这三个函数,我都会很懵,一定要到网上搜搜;今天,恰巧又见到了它们,所以想必是时候为它们做个笔记啦1.slice(数组)用法:arra
- 最近有提关于下拉选项过多的时候,希望输入关键词,可以搜索内容的需求,但是之前项目太赶,所以也就没有来得及做,因为希望用原生js写一些内容,所
- 不少小伙伴认为,直接去操作excel,比我们利用各种代码数据去处理,直接又简单,不那么花里胡哨,但是在代码上,处理数据,直接的软件操作是行不
- 只要为pycharm配置anaconda中的解析器即可。操作步骤:1. 在pycharm菜单栏中,点击File-Settings-Proje
- 每个产品诞生的背后都凝结着一位或是多位设计师的心血,在产品的诞生过程中文化、科技、环保、创意等这些方方面面的细节集结成一个绚丽的故事,因为有
- 我就废话不多说了,直接上代码吧!pip install pymysqlimport pymysqlimport pandas as pdco
- 1.前言在 Python 中,说到函数,大家都很容易想到用 def 关键字来声明一个函数:def Hello():
- 从http://freeapi.ipip.net和http://ip-api.com/json/这两个网站提供的免费调用接口查询IP地址归属
- 这篇文章主要介绍了如何基于Python实现数字类型转换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- K-Means聚类算法演示及可视化展示#导入包from sklearn.cluster import KMeansX = [[0.0888,
- 使用ASP处理XSLT转换XML比较简单,思路如下:创建一个XSLTemplate的对象,再创建一个XMLDOM对象,然后在家Xml文件和X