赞
踩
Python中类与对象的初认识
Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。本章节我们将详细介绍Python的面向对象编程。
如果你以前没有接触过面向对象的编程语言,那你可能需要先了解一些面向对象语言的一些基本特征,在头脑里头形成一个基本的面向对象的概念,这样有助于你更容易的学习Python的面向对象编程。
接下来我们先来简单的了解下面向对象的一些基本特征。
1)类的关键字:
从第一天第一个项目起我们就接触过关键字,这是语言中内定的一个语法规则吧,通过关键字告诉电脑下面一个字母或一段代码是什么,要用来干什么,告诉电脑怎么以哪种规则去用。
而class就是类的关键字,告诉系统我要定义一个类了。让系统用理解类的规则来理解我下面的一些代码。没有关键字来声明一下,系统就不知道下面的代码是什么。
2)标识符语法:
<1>合法的标识符,由字母数字下划线组成,其中数字不能开头。python2是ASCII码,python3是UTF-8编码表。python3编码方式是Unicode(万国码),支持中文,utf-8,utf-16,兼容ACSII;python2ASCII,不支持中文。
<2>大小写敏感(区分大小写)
<3>没有长度限制
<4>不能使用关键字、保留字
开发习惯:
1望文生义,如:age=13,num=12;外行写法:asdasda=13,haha=12
2.大小写:<1>包名全小写,<2>常量全大写,<3>变量、函数名小驼峰,开头首字母小写,后面首字母全大写,<4>类名大驼峰,首字母全大写。
3.其他命名:hello_world
3)要继承的类名:
这是一个更大的类,就是自己定义的类是其子类,可以从这个父类中继承一些功能与特性,现在使用默认的是object。父类和子类的关系应该像一个学校与这个学校中的一个班级的关系,自定义类就是新开一个班,班不是随便开的,是在学校这个环境下开的。不然开了没有学校的帮助这个班可能毫无用处。新开的班名就是类的标识符。
Object是一个超类,t就像是一个所有类的天道规则吧!。不管是吃饭睡觉打豆豆还是开班传教。总之这一切是在这个世界上完成的。在这个世界的运转规则下完成的。
1)关键字
python中一共含有32个关键字:
‘false’, ‘none’, ‘true’, ‘and’, ‘as’, ‘assert’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘except’, ‘finally’, ‘for’, ‘from’, ‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘nonlocal’, ‘not’, ‘or’, ‘pass’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’
关键字-是Python内置的、具有特殊意义的表示符
使用时关键字后面不需要括号
因为这里的__int__是一个内置函数,因此它以关键字def开头
2) __int__函数与参数:
前面有说到一个超类 object ,init()就是这个超类中诞生的一个用于初始化对象数据的一个函数,就相当于 object这个天道下诞生的一个具有初始化能力的神,init()函数的参数是定义了这个类所具有的一些特性。举个栗子来说:
Long long ago,天道(object)诞生了,后来女娲(init函数)也诞生了。她有一项能力就是捏土造人。人是一种什么存在呢?女娲在脑海中对人进行了想像,人有这么些特征(属性):五官,四肢,分男女等等。总之,这个神(init)给你设置了一些属性,那么不管你怎么变化都是在这些属性之内,她说你是卵生,你就不会是从蛋里出来。否则你就是跑错片场了,不属于这个类,不是这个类中的对象。
3)初始化数据:
在这个类中Init函数已经赋予了对象一些属性,比如说学生这个类,学生中的某个对象是具有名字,性别,身高,体重这些属性的。(其他的属性美丑之类的未定义不考虑)但是名字是什么?性别是什么?这需要初始化一下数据!
回到神话中,女娲要造的“人”,包含五官,四肢,分男女等属性,但是如果她把这些和别的大神们说,别的大神还是不知道“人”是什么,因为五官是什么,四肢是什么其他大神还是不知道(由此可见五官,四肢等其实和“人”也一样是中对象),这个时候女娲就要做出赋值行为,现场做出五官,四肢实体然后组成一个人,这个时候其他大神就明白了,即使见到一个比较胖的人也还能认出这东西是女娲造的人。
1) 类的方法
穿上类的马甲叫方法,脱了马甲叫函数。
在类里面设置的函数,进行一些关于类中对象的处理的步骤方法。
2)类属性值的引用
类不是觉得无聊随便设立的一个东西,而是为了对一些具有相同属性特征的对象进行统一处理的一个模块。那么人们既然建立了类这种东西来处理一些问题,那么也必然会想要从中得到处理的一些数据。这时便进行了类属性值的引用,因为既然是一个类,那么某些角度上来看,其中的所有对象都是一样的。只有再深入一点,去看每个对象的属性值才可以区分每一个对象,所以我们可以这样获取数据:stu.name ,先写出是哪个对象然后在点一下深入到某个属性中,如果只有对象名,那这个对象这么多属性系统怎么知道你要哪一个,索性给你这个对象属性存放的地址你自己找去吧!如果只有属性没有对象名,那你这个要求就是太无理了,系统会直接给你个错误提示就不再搭理你了!
3)类方法的引用
如果说类只能够帮助人们整理数据然后让人们来引用的话,那还不如直接建立一个字典。
所有类有一个叫方法的功能,你可能要获取某种结果是需要对类中对象进行某种处理,那我就直接把方法写出来。这样你想要对哪个对象进行什么处理,那你直接告诉方法这个东西,方法会直接给你个结果。这样看,类中的方法是不是一个很好用很合格的助手呢。
实例1:
#面向对象 #需要有意义的面向对象的代码,不是有了类就是面向对象 #核心:类 对象 #实例化 #方法:设计层面 函数:程序运形,过程式一种称谓 class Student(): name = 'redhat' ##变量:数据成员 age = 12 def print_file(self): #类的方法 print('name:' + self.name) print('age:' + str(self.age)) student = Student() #实例化 student.print_file() #类方法的引用
实例2:
#对象:对象是现实世界或者思维世界中的实体在计算机中的反映, #它将数据以及这些数据上的操作封装在一起 #类:一类事物的统称,对象是类具体化的产物,也就是实例化 #不同的对象有什么不同特点:比如年龄,姓名 class Student(): name = '' age = 0 def __init__(self,name,age): #构造函数 self.name = name self.age = age def do_homework(self): print('homework') student1 = Student('redhat',38) print(student1.name) print(student1.age)
实例3:
class Dog():
def __init__(self,name):
self.name = name
def __str__(self):
#必须返回一个字符串
return '这是 %s' %(self.name)
Gofei = Dog('旺财')
print(Gofei)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。