一、分类

1、面向过程

2、面向函数

3、面向对象

二、类和对象

1、宏关

类是抽象的,对象是具体的

2、实例化

类->对象

3、类的作用

1)实例化成对象

实例化的过程,创建self对象,调用__init__()方法,获取返回值

2)调用静态属性

4、对象的作用

1)调用函数

2)查看属性

5、补充

1)类和属性都有__dict__

2)self可以看成字典(不严谨)

3)初始化的__init__和方法的形参必须有self

4)类的名字首字母大写

5)类的关键字class

# 计算长方形的周长、面积 square  perimeter area
class Square: # 定义类
def __init__(self, wide, height): # 初始化
self.wide = wide
self.height = height def per(self): # 周长方法
return (self.height + self.wide) * 2 def area(self): # 面积方法
return self.wide * self .height s1 = Square(2, 4) # 实例化
p1 = s1.per() # 对象调用方法
a1 = s1.area()
print(p1, a1)
class Person:
country = 'China' # 静态属性/类属性 def __init__(self, name, sex, age): # 初始化
self.name = name
self.sex = sex
self.age = age def hobby(self, hob):
print('大叫好,俺叫%s,我是%s生,我今年%d岁,我喜欢%s' % (self.name, self.sex, self.age, hob)) person = Person('张飞', '男', 24) # 实例化
person.hobby('女人')
print(Person.country)
Person.hobby(person, '女人') # Person.hobby(person, '女人') 通过类调用方法,一般不这么写,与person.hobby('女人') 效果用于
""""
大叫好,俺叫张飞,我是男生,我今年24岁,我喜欢女人
China
大叫好,俺叫张飞,我是男生,我今年24岁,我喜欢女人
"""

三、  命名空间

1、类的命名空间

定义:创建一个类就会创建一个类的命名空间

作用:储存属性

2、属性分类

静态属性:类里面定义的变量

动态属性:类里面定义的方法

类命名空间的属性是共享对象的

3、对象的命令空间

类->对象,实例化,创建对象的命名空间,是__init__里的属性

对象调用属性的过程:

先从对象命名空间里找,找不到,到类命名空间找,找不到,就不会在找,抛出异常

4、绑定方法

对象/实例.方法名

四、组合用法

定义:一个类的对象作为另一个类的数据属性

class Birthday:
def __init__(self, month, day):
self.month = month
self.day = day class Teacher:
def __init__(self, name, age, birth):
self.name = name
self.age = age
self.birth = birth b1 = Birthday(11, 10)
te = Teacher('tom', 22, b1) # b1是Birthday类的对象,作为Teacher类的数据属性
print(te.birth.month)

python 面向对象-初识的更多相关文章

  1. Python面向对象 | 初识

    一.面向对象编程 类 : 具有相同属性和技能的一类事物 对象: 就是对一个类的具体的描述 实例化:类——>对象的过程 使用面向对象的好处: 使得代码之间的角色关系更加明确 增强了代码的可扩展性 ...

  2. 初识python面向对象

    一.初识python面向对象: class Person: #使用class关键字定义一个类 age=0 #类变量(静态变量) def eat(self,food): #定义一个方法 self.age ...

  3. python递归 及 面向对象初识及编程思想

    递归 及 面向对象初识及编程思想   一.递归 1.定义: 在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数. (1)递归就是在过程或函数里调用自身: (2)在使用递 ...

  4. python基础学习笔记——面向对象初识

    面向对象初识 python中一切皆对象. 类有两种: 新式类:在py3中所有类都是新式类 经典类:在py2中只有类本身继承了object类才叫做新式类,默认是经典类 class Person: cou ...

  5. Python中面向对象初识到进阶

    面向对象初识到进阶 # 面向对象结构: # class 类名: # def __init__(self,参数1,参数2): # self.对象的属性1 = 参数1 # self.对象的属性2 = 参数 ...

  6. Python面向对象01 /面向对象初识、面向对象结构、类、self、实例化对象

    Python面向对象01 /面向对象初识.面向对象结构.类.self.实例化对象 目录 Python面向对象01 /面向对象初识.面向对象结构.类.self.实例化对象 1. 面向对象初识 2. 面向 ...

  7. python 面向对象专题(一):面向对象初识、面向对象结构、类、self、实例化对象

    https://www.cnblogs.com/liubing8/p/11301344.html 目录 Python面向对象01 /面向对象初识.面向对象结构.类.self.实例化对象 1. 面向对象 ...

  8. python之面向对象初识

    一.面向对象初识 1.结构上 面向对象分成两部分:属性.方法 class A: name = 'xiaoming' # 静态属性.静态变量.静态字段. def func1(self): # 函数.动态 ...

  9. python基础(17)继承类和面向对象初识

    1.继承类 class Lm: money = 1000000 house = 5 def driver(self): print('会开车') class Mcb(Lm): def about_me ...

随机推荐

  1. 初学ServiceMix

    因为老板给的毕业题目是ESB相关,需要学下ServiceMix(版本7.0.1) 但是SOA这东西技术上比较旧,加上主要是企业在用,个人学习的不多,所以资料比较少 CSDN上看到篇文章不错但是有些地方 ...

  2. 2018-8-10-win10-uwp-获取文件夹出错

    title author date CreateTime categories win10 uwp 获取文件夹出错 lindexi 2018-08-10 19:16:50 +0800 2018-2-1 ...

  3. k8s的网络方案对比

    如下图,三台虚拟机k8s-master.k8s-node-1.k8s-node-2组成k8s集群,网络拓扑和节点IP分配如下图: 一.flannel组网方案 https://github.com/co ...

  4. 【Linux】CentOS 7.5 修改时区

    1⃣️查看当前CentOS系统版本: [parallels@k8s-node2 ~]$ cat /etc/redhat-release CentOS Linux release 7.5.1804 (C ...

  5. 解决win10台式机插入耳机没有声音或者音量不大

    没有声音 如果是插入机箱的前面板,尝试切换到后面板,因为有些组装机箱的前面板是不能用的 有声音,单音量不大(注意:并不一定适用于所有情况,但是可以尝试一下) 原因:缺少驱动,可以确定下控制面板是否有这 ...

  6. 学习python资料

    资料链接:https://www.cnblogs.com/wupeiqi/articles/5433893.html

  7. centos7搭建hadoop2.10伪分布模式

    1.准备一台Vmware虚拟机,添加hdfs用户及用户组,配置网络见 https://www.cnblogs.com/qixing/p/11396835.html 在root用户下 添加hdfs用户, ...

  8. 玩转MQTT-阿里云之MQTT使用(下)

    玩转MQTT-阿里云之MQTT使用(下) 摘要 为使物联网项目在正式使用时,能顺利切换到具有高并发高负载能力的服务平台,对阿里云提供的MQTT服务进行使用验证. 引言 之前写“MQTT之阿里云使用-玩 ...

  9. 【题解】P5446 [THUPC2018]绿绿和串串(manacher)

    [题解]P5446 [THUPC2018]绿绿和串串(manacher) 考虑对于一个串进行\(f\)操作,就是让他变成一个以最后一个节点为回文中心的回文串. 那么对于某个位置\(p\),假如它是一个 ...

  10. 使用这些idea插件让开发效率提高5倍

    idea 有很多非常好用的插件,用好了这些插件能够极大的提高开发效率 插件用的好,bug 就追不上了我