Python笔记_第三篇_面向对象_2.第一个Python类
1. 设计一个类:
设计一个类主要从三个方面进行考虑:
第一:类名:类名要见名知意。首字母大写。
第二:属性。
第三:方法。
备注:在Python中有些东西并不是绝对化的事情,有些根据Python社区里面有些约定俗称的规定,在Python这种动态语言当中随处可见,比如像__、_单双下划线的使用就是这个问题的一个体现。
2. 创建一个类:
类:一种数据类型,本身并不占内存空间,根据所学过的number、string、boolean等类似,用类创建实例化对象。
格式:
class 类名(父类列表):
属性
方法
备注:Object:是一个基类,也可以叫做超类,所有类的父亲,后面说道继承的时候回详细说明,所有的类最终都会继承自object,一般没有合适的父类就写Object,或者不写也可以。
class Person(object): # 定义属性(定义变量) name = "" age = 0 height = 0 weight = 0 # 定义方法(定义函数) # 注意:方法的参数必须以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 = 18 per.height = 160 per.weight = 80 print(per.name,per.age,per.height,per.weight) # 返回值:Thomas 18 160 80
5. 访问类的方法:
格式:
对象名.方法
赋值:
对象名.方法(参数列表)
per.openDoor() # 我已经打开了冰箱门 per.fillEle() # 我已经把大象装进冰箱了 per.closeDoor() # 我已经关闭了冰箱门 # 带参数的方法访问 per.eat("apple") # eat apple
总结:
这样我们把在Python下面一个最基本的类的设计、建造、访问属性、访问方法介绍完了。后面根据类的需求和特点进行详细的分析。
本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。