码迷,mamicode.com
首页 > 编程语言 > 详细

python day24

时间:2018-06-19 13:39:18      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:本质   没有   大写   function   lex   python   fun   --   ldb   

面向对象

类:把一类事物的想通动作跟特征整合到一起就是类,类是一个抽象的概念

对象:就是基于类而创建的一个具体的事物(具体存在的),也是特征和动作整合到一起

面向对象过程分析,例如:

技术分享图片
 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 def school(name,addr,type):
 4     def kao_shi(school):
 5         print("%s 学校正在考试" % school[name])
 6 
 7     def zhao_sheng(school):
 8         print(%s %s学校正在招生 % (school[type],school[name]))
 9     def init(name,addr,type):
10         sch = {
11             name: name,
12             addr: addr,
13             type: type,
14             kao_shi: kao_shi,
15             zhao_sheng: zhao_sheng,
16         }
17         return sch
18     return init(name,addr,type)
19 s1 = school(oldboy,沙河,私立学校)
20 print(s1[name])
21 s1[kao_shi](s1)
View Code

类相关知识:

在Python中声名函数和声名一个类很相似

声名函数:

 1 def functionName(args):

3   函数文档字符串 

 

声名类:命名规范:首字母大写

 1 ‘‘‘
 2 class  类名:
 3   文档字符串
 4   类体
 5 ‘‘‘
 6 #我们创建一个类:
 7 class Data:
 8   pass
 9 #用类Data实例化出一个对象d1
10 d1 = Data()

实例:实例只有数据属性,没有函数属性(方法)

技术分享图片
 1 #类属性:1、数据属性 2、函数属性(方法)
 2 class Chinese:
 3     dang=
 4     def sui_di_tu_tan():
 5         print("朝着墙上就是一口痰")
 6 
 7     def cha_dui(self):
 8         print(插到了前边)
 9 
10 print(Chinese.dang)#类属性.
11 Chinese.sui_di_tu_tan()
12 print(dir(Chinese))
13 #查看类的属性字典
14 Chinese.__dict__[dang]
15 Chinese.__dict__[cha_dui](1)
View Code

特殊的类属性:

类的相关知识:

技术分享图片
 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 # class Chinese:
 4 #     ‘这是一个中国人的类‘
 5 #     pass
 6 # p1 = Chinese()
 7 # print(p1)
 8 
 9 #类属性:1、数据属性 2、函数属性(方法)
10 class Chinese:
11     dang=
12     def sui_di_tu_tan():
13         print("朝着墙上就是一口痰")
14 
15     def cha_dui(self):
16         print(插到了前边)
17 
18 # 特殊的类属性
19 print(Chinese.__name__)
20 print(Chinese.__doc__)
21 print(Chinese.__base__)
22 #
23 # print(Chinese.dang)#类属性.
24 # Chinese.sui_di_tu_tan()
25 # print(dir(Chinese))
26 # #查看类的属性字典
27 # Chinese.__dict__[‘dang‘]
28 # Chinese.__dict__[‘cha_dui‘](1)
View Code

 

对象相关知识以及增删改查:

技术分享图片
 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 # class Chinese:
 4 #     ‘这是一个中国人的类‘
 5 #     pass
 6 # p1 = Chinese()
 7 # print(p1)
 8 
 9 #类属性:1、数据属性 2、函数属性(方法)
10 class Chinese:
11     dang=
12     #实例化过程本质上就是调用__init__函数的运行
13     def __init__(self,name,age,gender):
14         print("开始实例化")
15         self.mingzi = name
16         self.nianling = age
17         self.xingbie = gender
18         print("实例化结束")
19     def sui_di_tu_tan():
20         print("朝着墙上就是一口痰")
21 
22     def cha_dui(self):
23         print(插到了前边)
24     def play_boy(self,ball):
25         print("%s 正在打%s" %(self.name,ball))
26 
27 # p1 = Chinese(‘sd‘,28,‘man‘)
28 
29 # print(p1.__dict__)
30 # print(p1.__dict__[‘xingbie‘])
31 # print(p1.mingzi)
32 # print(p1.dang)
33 # #调用方法:
34 #
35 # Chinese.sui_di_tu_tan()
36 # #更改
37 # Chinese.dang=‘shidong‘
38 # #查看
39 # print(Chinese.dang)
40 # #增加
41 # Chinese.dang=‘人‘#增加数据属性
42 #
43 #
44 # print(Chinese.dang)
45 # print(p1.dang)
46 # #删除
47 # del Chinese.dang
48 # print(Chinese.__dict__)
49 # print(p1.__dict__)
50 p1 = Chinese(sd,28,man)
51 def eat_food(self,food):
52     print("%s 正在吃%s" % (self.mingzi,food))
53 
54 Chinese.eat=eat_food
55 
56 print(Chinese.__dict__)
57 p1.eat(apple)
58 
59 def ceshi(self):
60     print("test")
61 
62 Chinese.play_boy=ceshi
63 p1.play_boy()
View Code

 对象与实例属性调用:

 1 country=中国-------------
 2 class Chinese:
 3     country=中国#类的属性
 4     def __init__(self,name):
 5         self.name=name
 6         print(--->,country)#属性通过实例或者类的点调用,如果只是实例化那么就是一个
 7         #简单的属性而已,调用的country就是country=‘中国-------------‘
 8 
 9     def play_ball(self,ball):
10         print(%s 正在打%s %(self.name,ball))
11 
12 p1=Chinese(alex)
13 print(p1.country)
14 p1.country=日本
15 print(p1.country)
16 print(Chinese.country)

 

python day24

标签:本质   没有   大写   function   lex   python   fun   --   ldb   

原文地址:https://www.cnblogs.com/sd880413/p/9184418.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!