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__			# 访问内置属性
   

  

 

 

 

posted @ 2013-03-17 01:03  spaceship9  阅读(432)  评论(0编辑  收藏  举报