本节内容

1、self关键字

2、封装

3、继承

4、静态方法

一、self关键字

作用:调用当前方法的对象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Foo:
     
    #静态字段或者公有属性
    country = "中国"
 
    def __init__(self,name,count):
        self.name = name
        self.count = count
 
    def bar(self):
        pass
 
obj1 = Foo("江苏",100000)
obj1.bar

注意:country = "中国" 属于公有字段,它的作用是:每个对象中保存相同的东西时,可以使用静态字段

二、封装

  • 类中封装了 :字段、方法
  • 对象中封装了:普通字段的值
  • 不仅可以封装字段,还可以封装对象
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class F1:
    def __init__(self,n):
        self.N = n
        print("F1")
     
class F2:
    def __init__(self,arg1):
        self.a = arg1
        print("F2")
 
class F3:
     
   def __init__(self,arg2):
        self.b = arg2
        print("F3")
 
o1 = F1("alex")
o2 = F2(o1)
o3 =F3(o2)
 
######输出alex####
# o3 =F3(o2)
o3 ====> o2
 
# o2 = F2(o1)
o3.b.a
 
# o1 = F1("alex")
o1.b.a.N

三、继承

说明:子类继承父类,对象调用方法时,先从自己的类中去找,找不到,就会去找父类中的方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
class F1:
    def __init__(self):
        print('F1')
 
    def a1(self):
        print("F1a1")
 
    def a2(self):
        print("F1a2")
 
class F2(F1):
    def __init__(self):
        print("F1")
 
    def a1(self):
        print("F2a1")
 
    def a2(self):
        self.a2()
        print("F2a2")
 
class F3(F2):
    def __init__(self):
        print("F3")
 
    def a2(self):
        print("F3a2")
 
obj = F3()
obj.a1()
 
#输出
F3a2
F2a1

上面代码访问的顺序如下:

  1. 先去到F3中找a1方法,没有找到
  2. 到F2父类去找,找到了a1方法,去执行a1方法
  3. 执行过程中需要调用F3中的a2方法

四、静态方法

4.1 类的组成

  • 字段:1.普通字段(保存在对象中),2静态字段(保存在类中)
  • 方法:普通方法(保存在类中,用对象去调用)
1
2
3
4
5
6
7
class F1:
    age = 18  #静态字段
    def __init__(self,name):
        self.name = name  #普通字段
 
    def a1(self):   #普通方法
        print('F1a1')

4.2 静态方法

特点:

  1. 保存在类中
  2. 调用者无需创建对象
  3. 可以有任意个参数
1
2
3
4
5
6
7
8
class F1:
     
    @staticmethod   #声明是静态方法
    def a1(n1,n2):   #无需传入对象,但是可以声明多个值
        print('xiaogao')
 
 
F1.a1(1,2)   #类名.方法名 方式调用

作用:当对象不需要传入参数时,去创建对象有些浪费,占着资源,所以还不如直接用类名直接去调用,这个类似于函数。

面向对象【day07】:知识点回顾(十一)的更多相关文章

  1. 面试前的准备---C#知识点回顾----03

    经过一天的奔波,喜忧参半,不细表 再回看下标题,C#知识点回顾 再看下内容,数据库3NF 原谅我这个标题党 今天继续回忆 1.HTTP中Post和Get区别 这忒简单了吧,大家是不是感觉到兴奋了,长舒 ...

  2. Spring知识点回顾(08)spring aware

    Spring知识点回顾(08)spring aware BeanNameAware 获得容器中的bean名称 BeanFactoryAware 获得当前的bean factory Applicatio ...

  3. Spring知识点回顾(07)事件发布和监听

    Spring知识点回顾(07)事件发布和监听 1.DemoEvent extends ApplicationEvent { public DemoEvent(Object source, String ...

  4. Spring知识点回顾(01)Java Config

    Spring知识点回顾(01) 一.Java Config 1.服务和服务注入 2.Java 注解 :功能更强一些 3.测试验证 二.注解注入 1.服务和服务注入 2.配置加载 3.测试验证 三.总结 ...

  5. Java进阶(二十六)公司项目开发知识点回顾

    公司项目开发知识点回顾 前言 "拿来主义"在某些时候并不是最佳选择,尤其是当自己遇到问题的时候,毫无头绪. 在一次实验过程中,需要实现数据库的CRUD操作.由于之前项目开发过程中, ...

  6. $Django Rest Framework-认证组件,权限组件 知识点回顾choices,on_delete

    一 小知识点回顾 #orm class UserInfo (models.Model): id = models.AutoField (primary_key=True) name = models. ...

  7. django知识点回顾与补充

    一.django知识点回顾 1.Cookie操作 - 客户端本地存储的键值对 2.Session操作 - 3.URL路由 - /index -> view.函数 4.MTV 5.View中返回方 ...

  8. Spring学习笔记:Spring整合Mybatis(mybatis-spring.jar)(一:知识点回顾)

    一.知识点回顾 1.Mybatis环境搭建(DAO层的实现)(使用maven项目管理工具) 需要引入的依赖包: <!-- 单元测试junit --> <dependency> ...

  9. 零基础Python知识点回顾(一)

    如果你是小白,建议只要安装官网的python-3.7.0-amd64.exe 然后在电脑cmd命令提示符  输入检查是否已经安装pip,一般安装了python都会有的. >pip         ...

  10. 前端知识点回顾——HTML,CSS篇

    前端知识点回顾篇--是我当初刚转行为了面试而将自己学过的前端知识整理成的一份笔记,个人目的性很强,仅供参考. doctype 有什么用 doctype是一种标准通用标记语言的文档类型声明,目的是告诉标 ...

随机推荐

  1. 21JDBC_事务&JDBCTemplate

    一.JDBC_事务 通过JDBC来操作银行转账的事务 1.API介绍     Connection接口中与事务有关的方法 void setAutoCommit(boolean autoCommit) ...

  2. JS操作Cookies

    JS操作Cookies 获取Cookie function getCookie(c_name) { if (document.cookie.length > 0) { c_start = doc ...

  3. ajax 提交Dictionary

    ajax向webapi提交Dictionary Script: var data = { "a": 1, "b": 2, "c": &quo ...

  4. Asteroids POJ - 3041 匈牙利算法+最小点覆盖König定理

    题意: 给出一个N*N的地图N   地图里面有K个障碍     你每次可以选择一条直线 消除这条直线上的所有障碍  (直线只能和列和行平行) 问最少要消除几次 题解: 如果(x,y)上有一个障碍 则把 ...

  5. 【BZOJ3997】【TJOI2015】组合数学 Dilworth定理 DP

    题目描述 有一个\(n\times m\)的网格图,其中某些格子有财宝,每次从左上角出发,只能向下或右走.问至少走多少次才能将财宝捡完. 此对此问题变形,假设每个格子中有好多财宝,而每一次经过一个格子 ...

  6. hdu 5510 Bazinga (KMP+暴力标记)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5510 思路: 一开始直接用KMP莽了发,超时了,后面发现如果前面的字符串被后面的字符串包含,那么我们就 ...

  7. 「CodeForces - 50C 」Happy Farm 5 (几何)

    BUPT 2017 summer training (16) #2B 题意 有一些二维直角坐标系上的整数坐标的点,找出严格包含这些点的只能八个方向走出来步数最少的路径,输出最少步数. 题解 这题要求严 ...

  8. 【BZOJ5305】[HAOI2018]苹果树(组合计数)

    [BZOJ5305][HAOI2018]苹果树(组合计数) 题面 BZOJ 洛谷 题解 考虑对于每条边计算贡献.每条边的贡献是\(size*(n-size)\). 对于某个点\(u\),如果它有一棵大 ...

  9. 【APIO2018】铁人两项(圆方树,动态规划)

    [APIO2018]铁人两项(圆方树,动态规划) 题面 UOJ 洛谷 BZOJ 题解 嘤嘤嘤,APIO的时候把一个组合数写成阶乘了,然后这题的70多分没拿到 首先一棵树是很容易做的,随意指定起点终点就 ...

  10. Nowcoder | [题解-N210]牛客OI月赛2-提高组

    比赛连接戳这里^_^ 我才不会说这是我出的题(逃) 周赛题解\((2018.10.14)\) \(T1\) \(25\sim50\)分做法\(:\)直接爆搜 作为一个良心仁慈又可爱的出题人当然\(T1 ...