背景描述
起因
既然开始不走寻常路了,那走的再奇怪一些问题应该也不大~ o( ̄▽ ̄)o,
直接从面向对象开始学 python, 这倒也不是我自己凭空开的脑洞,是最近在看 <<think in java>> 这本书,发现第一章就是从面向对象开始的,感觉尝试一下新的思维应该也未尝不可.
不过客观来说,我对于面向对象的理解还处于初级阶段,极为浅薄,所以面向对象部分可能出现不少问题,各位读者在阅读本文的过程中如果发现错误疏漏,烦请指出并给与纠正,不胜感谢.
题外话
今天发现 vs code 可以写 markdown, 弃了 OneNote, vs code 真的是世界的主宰(★ ω ★)
正文:什么是面向对象
类
对象,外文名为object:也有物体,目标的意思
所谓物以类聚,人以群分,面向对象编程首先就需要一个 类:class
举例来说,三角形,正方形,菱形都有相同的属性,就能被归于一类物体,比如他们都是在平面上的,那就可以归类为平面图形,用程序的方法来写就是:
# 平面图形 类 的 对象
# () 括号内表示输入,输入给程序一个参数以得到不同的结果
# 此处是输入给平面图形一个父类,代表平面图形是 object 对象的一员
# 即平面图形类继承自 object 类是 object 类的子类
class PlaneFigure(object):
# define init function
# 定义初始化函数(自己,名字)
# 此处是给初始化函数输入需要的参数
# self 表示实例对象本身,比如一个正方形,见下面创建实例对象
# name_input: 输入的名字,即 self 指代的对象的名字,比如'正方形'
def __init__(self, name_input):
# 该平面图形的名字与初始化输入的名字相同
# name_input 只是一个普通的变量,外部输入给的名字
# self.name 则是特指 self 的实例对象的名字,与 self 绑定
# 可以使用 . 来调用,例如 正方形.name = '正方形'
self.name = name_input
# 看到图形就能想到它是什么
# 所以可以定义得到名字的方法(输入自己)
def get_name(self):
# print(xxx) 基本的输出函数,在控制台打印括号内的内容
# 打印(自己的.名字) 然后会在控制台得到程序输出的 '正方形'
print(self.name)
实例
与此相对的,物体的类,准确来说只是一个抽象的’框架’,需要一个实例对象来作为有意义的实例载体,在类中用 self 代替的一个 instance (实例):
# 在不同的.py 文件之间互相调用,需要 import 导入相应的文件
# 来自 平面图形文件导入平面图形类
from aClassAndInstance.PlaneFigure import PlaneFigure
# 新建一个 name 是'正方形'的,在程序中的代号(引用名)是 square
# -属于平面图形类的正方形对象
square = PlaneFigure('正方形')
# 调用平面图形类中所定义的方法,在控制台中输出 square 对象的名字
square.get_name()
就像现实中看到平面上的正方形,我们的大脑就会得到反馈一样,在程序中,创建了一个代号为 squre 的平面类图形,正方形,程序也"一眼就认出了"我们给他的 squre 是一个正方形,这就是面向对象的基础应用.
结尾踩坑总结
问题描述
提交代码到 GitHub 时 intellij 报出现了这么个问题:
Successfully created project ‘LearnPython’ on GitHub, but initial commit failed: *** Please tell me who you are. Run git config --global user.email "you@example.com" git config --global user.name “Your Name” to set your account’s default identity. Omit --global to set the identity only in this repository. unable to auto-detect email address (got ‘admin@DESKTOP-90P6SNH.(none)’)
解决办法
git安装目录,下的git-bash.exe如:
D:\Program Files\Git\git-bash.exe
在对应的地方输入账户名及邮箱就可以正常提交了
$ git config --global user.name "your name"
$ git config --global user.email "your_email@youremail.com"
代码地址
https://github.com/Wsdady/LearnPython
结语
感谢每一位认真看完我这不成熟的文章的人,你们的支持就是对我最大的鼓励,谢谢!
–by Libor B. Lodestar 名远
2019.05.15