前言
大家好,前几天我在这里发表了“迦娲”的第一章,我学习JAVA,同时呢,也会Python。所以目前我的两个主打对象是Python和JAVA。想必大家都看到题目叫“派森”,这个是Python的中文音译。我会把我一些学习Python的笔记,心得等知识发表在CSDN里面,同样的,我希望各位前辈们,能够给与我最大的帮助和鼓励。谢谢。
乐高积木
想必大家都知道乐高积木,也玩过乐高。可能会疑惑学习Python跟乐高有什么关系。听我慢慢道来。
Python是一门面向对象的编程语言,可能大家很多人刚开始学,弄不懂什么是面向对象。
我用一个乐高积木的作为例子:
大家可以去淘宝网或者乐高官网查一款代号:
Liebherr R 9800 挖掘机
价格大概在3000+人民币左右
(我是想上传图片的,也不知道CSDN为什么上传不了)
一般乐高都是一包包的就是零件,还有一本图纸,大家就是通过这本图纸进行拼装的。
跟面向对象有什么关系呢?
讲到面向对象就得讲到:
类 与 对象
这本图纸就是类
而这个乐高积木(挖掘机)就是对象
用图纸创造挖掘机 ==> 用 类 创造 对象
也就是用类去实例化
当然这个挖掘机他有特征,比如它多高?多重?等这些就是它的特征。
这个挖掘机能干嘛?比如他能挖土,可以通过遥控器进行前进,后退等行为
在面向对象里面 把特征叫做 属性(变量) 行为就是方法(函数)
但是要记住 是先有类 再有对象,你不可能不看图纸就会拼这个挖掘机对吧
然后一个类可以创造多个对象,因为你看看 市场上 有很多这样的挖掘机,乐高公司不可能只生产一个对吧。他会批量生产,然后这本图纸,他是拼接挖掘机的通用部分。就是说,你只要有一本图纸,这些挖掘机都可以拼出来,但是每个挖掘机的编码不一样。比如商家进货进了10盒这种乐高挖掘机,他必须得按照1~10的编号进行排序,进行对账。
我用代码给大家演示一下吧:
```"这是 类 的语法说明:
class 类的名字():
代码
.......
"这是 对象 的语法说明:
对象名= 类的名字()
然后以乐高挖掘机作为例子的代码演示:
class LEGO():
def go(self):
print("前进")
excavator=LEGO()
excavator.go()
这里的 def go(self) 是他的功能,就是他可以前进,可以后退或者其他功能
excavator.go() 意思是调用前进功能
之前我说到,一个类(图纸)可以生成无数的对象(挖掘机),但是他们的内存地址(编号)是不一样的。怎么说?
class LEGO():
def go(self):
print("前进")
excavator1=LEGO()
excavator2=LEGO()
print(excavator1)
print(excavator2)
眼尖的人会问,def go(self)中的 self是什么意思?
他的意思是 对象(挖掘机)
对象属性,比如这个挖掘机多大,多高,多重?这些就是属性。
这些属性是可以自己定义的, 它定义的方式有两种:
1.在类外面进行定义
2.类里面进行定义
在类外面进行定义
class LEGO():
def info(self):
print("该挖掘机高度:", self.height)
print("该挖掘机长度:", self.length)
excavator=LEGO()
excavator.height=100
excavator.length=200
excavator.info()
这种方法的意思是,定义完对象以后,进行对 对象的属性定义,然后在类里面进行调用。
当然,self.height 和self.length 可以换成excavator.height excavator.length
因为self本身就是对象的意思
在讲到在类里面进行定义属性的时候,就得讲到魔法方法:
当我们买到挖掘机的时候,我们可以从外包装看到这个挖掘机的规格,也就是说这些在出厂的时候就已经定死的了。
决定这个出厂的规格属性的就是魔法方法: _init _
在类里面进行定义属性
class LEGO():
def _init_(self):
self.height=200
self.length=100
def info(self):
print("该挖掘机高度:", self.height)
print("该挖掘机长度:", self.length)
excavator=LEGO()
excavator.info()
说完 魔法方法 __init __ 就得提提 __str __
当我们打印对象(挖掘机)的时候,返回给你的是一个内存地址(编号)
class LEGO():
def _init_(self):
self.height=200
self.length=100
def info(self):
print("该挖掘机高度:", self.height)
print("该挖掘机长度:", self.length)
excavator=LEGO()
print(excavator)
但是如果使用了__str __这个魔法方法,打印出来的就会是它return出来的值
记住!__str __只能跟着return “字符串”
class LEGO():
def __(self):
return "我是乐高挖掘机"
excavator=LEGO()
print(excavator)
心得:
以上更新的是面向对象的基础,以后会把剩下的部分,拉上来。然后再把Python其他的基础函数和字符串等功能进行讲解。谢谢大家!!!