1. 设计一个类

  设计一个类主要从三个方面进行考虑:

  第一:类名:类名要见名知意。首字母大写。

  第二:属性。

  第三:方法。

备注:在Python中有些东西并不是绝对化的事情,有些根据Python社区里面有些约定俗称的规定,在Python这种动态语言当中随处可见,比如像__、_单双下划线的使用就是这个问题的一个体现。

2. 创建一个类

  类:一种数据类型,本身并不占内存空间,根据所学过的number、string、boolean等类似,用类创建实例化对象。

  格式:

    class 类名(父类列表):

    属性

    方法

备注:Object:是一个基类,也可以叫做超类,所有类的父亲,后面说道继承的时候回详细说明,所有的类最终都会继承自object,一般没有合适的父类就写Object,或者不写也可以。

class Person(object):
# 定义属性(定义变量)
name = ""
age =
height =
weight = # 定义方法(定义函数)
# 注意:方法的参数必须以self当第一个参数,self代表类的实例(某个对象)
def run(self):
print("run")
def eat(self,food):
print("eat " + food)
def openDoor(self):
print("我已经打开了冰箱门")
def fillEle(self):
print("我已经把大象装进冰箱了")
def closeDoor(self):
print("我已经关闭了冰箱门")

3. 使用一个类

  使用一个类的过程也叫实例化一个类。

  格式:对象名 = 类名(参数列表) ---- 如果没有参数列表括号也不能省略

  注意:没有参数,小括号也不能省略(在C#这种面相对象的语言中要用new 类名的方法去实例化一个类,在Python这种语言中不需要,另外,其他面相对象语言有静态类和动态类这么一说,Python应该都是动态类,因为静态类不需要实例化)

  举例说明:

# 实例一个对象
per1 = Person()
print(per1)
# 返回值:<__main__.Person object at 0x000002A85E0A1080>
# __mian__表示入口
# at 0x000002A85E0A1080 表示内存地址 per2 = Person()
print(per2)
# 返回值:<__main__.Person object at 0x0000025F9B1611D0>
# 我们发现内存地址不一样,他们两个对象是没有关系的。

  注意:我们发现两个内存地址是不一样的。另外,__main__表示这个类的入口是对应main下的.Person这个类。因为在Python语言中不像类似于C#这样,需要些一个mian函数作为整个代码的入口。但是这些内容通过下划线的方式标识出来,隐含在类当中。通过实例化我们发现,两个内存地址是不一样的。也就是任何使用者都可以去实例化这个类,拿给自己用。

4. 访问类的属性:

  格式:

    对象名.属性名

  赋值:

    对象名.属性名 = 值

  举例说明:

# 实例化一个类
per = Person() # C# 语言Person per = new Person()这种实例化方法,Python省去很多了
per.name = "Thomas"
per.age =
per.height =
per.weight =
print(per.name,per.age,per.height,per.weight)
# 返回值:Thomas

5. 访问类的方法:

  格式:

    对象名.方法

  赋值:

    对象名.方法(参数列表)

per.openDoor()
# 我已经打开了冰箱门
per.fillEle()
# 我已经把大象装进冰箱了
per.closeDoor()
# 我已经关闭了冰箱门 # 带参数的方法访问
per.eat("apple")
# eat apple

总结:

  这样我们把在Python下面一个最基本的类的设计、建造、访问属性、访问方法介绍完了。后面根据类的需求和特点进行详细的分析。

Python笔记_第三篇_面向对象_2.第一个Python类的更多相关文章

  1. Python笔记_第三篇_面向对象_4.单下划线和双下划线

    说道这里我们需要稍微暂停一下.前面我们说到了类是作为一个对象存放容器.这个容器里面有属性和方法.最好的理解类的方式就是把类想想成一个容器. 然后构造了一个析构函数和构造函数,然后又对object和se ...

  2. Python笔记_第三篇_面向对象_5.一个关于类的实例(人开枪射击子弹)

    1. 我们学了类的这些东西,用这些类我们来操作一个关于类的实例. 2. 题目:人开枪射击子弹,然后具有装弹动作,然后再开枪. 第一步:设计类: 人类名:Person属性:gun行为:fire,fill ...

  3. Python笔记_第三篇_面向对象_9.Python中的"get"和"set"方法(@property和@.setter)

    1. 限制访问的问题: 如果学过C# 语言的我们可以知道C# 语言有get和set方法.我们之前想要获取父类中的私有变量,只能通过写一个set和get的函数进行访问或者通过类生成的新关键字来访问私有属 ...

  4. Python笔记_第三篇_面向对象_1.面向对象的基本概念和作用域

    1. 软件编程的实质: 软件编程就是将我们的思维转变成计算机能够识别语言的一个过程.重要的是思想,代码技术反而次要.因此思想也是最难的,突破固定的思想是关键 2. 什么是面向过程: * 自上而下顺序执 ...

  5. Python笔记_第三篇_面向对象_2.构造函数和析构函数(含self说明)

    1. 构造函数: 为什么要有构造函数? 打一个比方:类的创建就是好比你创建了好了一种格式的房间,你租给上一个住户的后,里面会对方很多“垃圾”和不规则的物品摆放.构造函数就是下一个住户再使用的时候进行物 ...

  6. Python笔记_第三篇_面向对象_3.重载(overloading)和重写(overriding)

    1. 重载: overloading:就是将函数重新定义一遍. 1.1 __str__( )和__repr__( )的重载: 格式: __str__( ):在调用print打印对象时自动调用,是给用户 ...

  7. Python笔记_第三篇_面向对象_8.对象属性和类属性及其动态添加属性和方法

    1. 对象属性和类属性. 我们之前接触到,在类中,我们一般都是通过构造函数的方式去写一些类的相关属性.在第一次介绍类的时候我们把一些属性写到构造函数外面并没有用到构造函数,其实当时在写的时候,就是在给 ...

  8. Python笔记_第三篇_面向对象_7.多态

    1. 多态的概念 多态:一种事物的多种形态.其表现形式就是连续的继承关系. 还以人喂食动物的例子.最终目标是人可以喂食任何一种动物.如果人要喂食100多种动物,难道要写100中方法吗?多态就是把属性和 ...

  9. Python笔记_第三篇_面向对象_6.继承(单继承和多继承)

    1. 概念解释: 继承:有两个类:A类和B类.那么A类就拥有了B类中的属性和方法. * 例如:Object:是所有类的父亲,还可以成为基类或者超类(super()) * 继承者为子类,被继承者成为父类 ...

随机推荐

  1. Day 22:网络编程(3)

    TCP通讯协议特点:  1. tcp是基于IO流进行数据 的传输的,面向连接.  2. tcp进行数据传输的时候是没有大小限制的.  3. tcp是面向连接,通过三次握手的机制保证数据的完整性.可靠协 ...

  2. 洛谷 P2458 [SDOI2006]保安站岗

    题目传送门 解题思路: 树形DP 可知一个点被控制有且仅有一下三种情况: 1.被父亲节点上的保安控制 2.被儿子节点上的保安控制 3.被当前节点上的保安控制 我们设dp[0/1/2][u]表示u节点所 ...

  3. linux 批量kill php进程

    一.执行以下命令 ps -ef|grep php|grep -v grep|cut -c 9-15|xargs kill -9     管道符“|”用来隔开两个命令,管道符左边命令的输出会作为管道符右 ...

  4. js运用sort对json 数组进行排序

    Array.sort()方法是用来对数组项进行排序的 ,默认情况下是进行升序排列.sort() 方法可以接受一个 方法为参数. sort()排序时每次比较两个数组项都回执行这个参数,并把两个比较的数组 ...

  5. python函数-函数初识

    python函数-函数初识 1.函数的定义 语法 def 函数名(参数1,参数2,参数3,...): '''注释''' 函数体 return 返回的值 2.函数的使用原则---先定义后调用 #定义阶段 ...

  6. VC++ DLL 1 一点概念

    1.在写代码的时候,我们可能会经常要用到一些封装好的函数或者类,这些可能是C/C++的标准库提供的,也可能是由别人开发的非标准库,这个时候就会涉及到动态链接库或者静态链接库的使用了. 举个例子,做图像 ...

  7. POJ-1733 Parity game(带权并查集区间合并)

    http://poj.org/problem?id=1733 题目描述 你和你的朋友玩一个游戏.你的朋友写下来一连串的0或者1.你选择一个连续的子序列然后问他,这个子序列包含1的个数是奇数还是偶数.你 ...

  8. 干货 | TiDB Operator实践

    干货 | TiDB Operator实践 北京it爷们儿 京东云开发者社区  4天前 K8s和TiDB都是目前开源社区中活跃的开源产品,TiDB Operator项目是一个在K8s上编排管理TiDB集 ...

  9. 吴裕雄--天生自然MySQL学习笔记:MySQL 元数据

    你可能想知道MySQL以下三种信息: 查询结果信息: SELECT, UPDATE 或 DELETE语句影响的记录数. 数据库和数据表的信息: 包含了数据库及数据表的结构信息. MySQL服务器信息: ...

  10. MacOS常用快捷键

    command+空格 打开Spotlight command+m 最小化当前窗口 control+command+f     最大化当前窗口 command+q                    ...