python面向对象开发视频1 (类 对象 属性)
教程地址为:http://v.youku.com/v_show/id_XNDg3MzI5Nzcy.html
第一讲。
面向对象的笔记
字符串是个对象
字符串的属性:它的值
字符串的方法:查找它的某一个字串
对象和类-》对字符串的操作
两种编程过程-》
开车,要想把所有的步骤学会,你得开车。
面向过程,很麻烦,一部一部告诉你,定义一个汽车,来开门,插上key,打开火。
面向对象,是封装到一个代码里面去,他知道怎么开车,封装到里面去。
C++不是纯面向对象,有java的内容。最后升级了,成为了c#。
python所有的东西都是对象,数字,变量都是对象。
数字有的方法,列表也有方法。
类是对象的抽象化,对象是吧类实例化。
举个例子,类--人类。对某个事物的描述。对象是有做事的方法,属性。具体的某一个事物。
类对事物的抽象描述。人类,定义类,会思考,会走路。属性,人的眼睛,外观。
定义类别,1.描述类别的属性,2.定义的方法。
对象,是类的一个实例。不能说让人类给扫扫地,能说小王去给扫扫地。小王是具体的一个实体。小王就是对象,小王有腿,可以走路,可以去扫地。
面向对象:
面向过程:
Python 的类的定义,
想要一堆指令执行的时候,我们便一个函数,这样我们可以执行一堆代码。但是如果四个函数都是属于操作数据库的函数,我们可以把这四个函数放到操作数据库的类中。
封装方法。
类可以吧变量和函数组合在一起,这种包含成为“封装”
>>> class 类名:
... 成员变量 # 在日常生活中,说变量==说属性 一回事
... 成员函数 # 在日常生活中,说函数==说方法 一回事
定义变量,类名开头字母大写。
字母数字下划线。
数字不能开头
定义类的时候
规范-----类单词首字母大写。不管几个单词,每个单词首字母都要大写。类的首字母。
复习一下,定义函数的时候,一个单词可以小写。两个以上的单词,第二个单词要大写。
创建类----
创建对象的过程,叫做实例化。当一个对象被创建好之后,包含三个特性。
1.句柄 用来区别不同变量的,abc,def变量的名字不一样
2.属性 成员变量
3.方法 成员方法
Python 对象体系结构
经典对象 就是普通的
新型对象 定义人的类别的时候,定义新型对象,必须集成object方法 class_name(object)
新型对象提供了对类和静态方法的支持
#class Ren: # 加不加括号都可以
#class Ren():
class Ren(object): # Ren类继承object中所有的属性与方法
name = "Ren"
hight = "One Man's Tall"
__money = "我有一百万"
def run(self):
print "run"
zhangsan = Ren()
print zhangsan.__money
|出现错误。提示,实例里面找不到这个变量
|
|
|
|python 类的属性。(属性其实就是在定义变量)
| 变量从结构来看,都是class中的.不能直接访问其内部的属性,得先实例化
|
|
|====> 说明类的属性并不是全部都可以被实例访问到的。
类中的属性是有区别的。
公有属性: 类里类外都可以调用的, 普通属性
私有属性: 在类里面能被访问利用的。在属性前面加“__”两条下划线
内置属性: 由系统在定义类的时候默认添加的,前后有两条下划线
__dict__, __module__
笔记如下-》
#!/usr/bin/python #coding:utf8 class Ren: name = "人" hight = "一人高" wight = "一人重" __money = "我有10块钱" def run(self): # 类的方法定义,必须有一个行参 print "跑步" # p = file(,,) file就是个类,系统定义的类,系统根据参数,实例化产生对象赋值给p if __name__ == '__main__': # 这表示如果被别人调用的话,将不执行 # 被自己调用,执行 zhangsan = Ren() # 把Ren类实例化,变成张三 # 访问张三对想的属性通过后面加一个点 . # 对对象的属性重新赋值 zhangsan.name = "张三" #print zhangsan.money #会报错,因为money在Ren属性中没有 zhangsan.money = "一百万" # money 是没有的在Ren类中,我们现在自己加上 ''' 对象是类的一个实例,但是张三还可以有不同与类的属性 比如说有钱。人家都没有,就张三有。。。。 ''' print zhangsan.money #print zhangsan.__money # 这种方法是访问不到的,访问也没有用。会报错的
类的私有属性:
#!/usr/bin/python #coding:utf8 class Ren: name = "人" hight = "一人高" wight = "一人重" __money = "我有10块钱" # 私有属性 def run(self): # 类的方法定义,必须有一个行参 #有人吧self,写成cls 就是class print self.name # 类中访问自己类的属性。 print "跑步" def say(self): print self.__money if __name__ == '__main__': # 这表示如果被别人调用的话,将不执行 # 被自己调用,执行 zhangsan = Ren() # 把Ren类实例化,变成张三 zhangsan.name = "张三" zhangsan.run() zhangsan.say() # 通过调用类中的方法,访问私有属性 # 这样可以对内部数据进行封装,数据隐藏 # 这个在银行里很有用的。 #print zhangsan.__money # 这里不可以直接访问私有属性 print Ren.name # 直接访问类的共有属性
私有属性的访问:
#!/usr/bin/python #coding:utf8 class Ren: name = "人" hight = "一人高" wight = "一人重" __money = "我有10块钱" # 私有属性 def run(self): # 类的方法定义,必须有一个行参 #有人吧self,写成cls 就是class print self.name # 类中访问自己类的属性。 print "跑步" def say(self): print self.__money if __name__ == '__main__': # 这表示如果被别人调用的话,将不执行 # 被自己调用,执行 zhangsan = Ren() # 把Ren类实例化,变成张三 zhangsan.name = "张三" print zhangsan._Ren__money # 用这种方法来访问私有属性 # 这种方法一般在测试的时候采用,一般不用 print "#"*30 print Ren.__dict__ # 访问内置属性
内置属性:
#!/usr/bin/python #coding:utf8 class Ren: name = "人" hight = "一人高" wight = "一人重" __money = "我有10块钱" # 私有属性 def run(self): # 类的方法定义,必须有一个行参 #有人吧self,写成cls 就是class print self.name # 类中访问自己类的属性。 print "跑步" def say(self): print self.__money if __name__ == '__main__': # 这表示如果被别人调用的话,将不执行 # 被自己调用,执行 zhangsan = Ren() # 把Ren类实例化,变成张三 zhangsan.name = "张三" print zhangsan._Ren__money # 用这种方法来访问内置属性 print "#"*30 print Ren.__dict__ # 访问内置属性