python自动化之路-day5.1

面向对象进阶

首先补充:

问题:什么是类?什么是对象,又有什么关系?

class 类():

def 函数1():

pass

def 函数2():

pass

#obj是对象,实例化的过程

obj = 类()

obj.函数1()

3.什么时候适用面向对象?
    - 如果多个函数须传入多个共同的参数时
- 根据一个模版创建某些东西
- 应用场景
class SSH:
def __init__(self, host,port,pwd,username):
self.host =
...
def connection(self):
# 去创建连接
self.conn = 和服务器创建的连接对象()

def close(self):
# 关闭
self.conn.关闭

def upload(self):
self.conn 使用连接上传文件

def cmd(self):
self.conn 使用连接执行命令

obj = SSH(....)
obj.connection()
obj.upload()
obj.close()

obj = SSH(....)
obj.connection()
obj.cmd()
obj.cmd()
obj.upload()
obj.upload()
obj.cmd()
obj.close()

*******************
def upload():
# 连接服务器
# 上传文件
# 关闭

def cmd():
# 连接服务器
# 执行命令
# 关闭

def upload_cmd():
# 连接服务器
# 上传文件
# 执行命令
# 关闭

4.self 就是调用当前方法的对象

- 公有属性使用场景,每个对象中保存相同的东西时,可以使用公有属性

class Foo:
# 公有属性
country = "中国"


def __init__(self, name,count):
# 普通属性
self.NAME = name
self.Count = count

def bar(self):
pass


obj1 = Foo('河南', 1000000)
obj1.bar()


obj2 = Foo('山东', 10000)
obj2.bar()

5.封装

封装:

-类中封装了:属性,方法

-对象中分装了:普通字段的值

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.b.a.N #######

# o3 = F3(o2)
o3.b   ==> o2


# o2 = F2(o1)
o3.b.a
o3.b


o1 = F1('alex')
o3.b.a.N

6.继承:

class F1:
def __init__(self):
print('F1')


def a1(self):
print('F1a1')


def a2(self):
print('F1a2')


class F2(F1):
def __init__(self):
print('F2')


def a1(self):
self.a2()
print('F2a1')


def a2(self):
print('F2a2')


class F3(F2):
def __init__(self):
print('F3')


def a2(self):
print('F3a2')


obj = F3()
obj.a1()
# F3a2
# F2a1

7.静态方法
字段:
公有属性(保存在对象中)
普通属性(保存在类中)


方法:
普通方法(保存在类中,调用者对象,至少有self参数)
class F1:
def __init__(self,name,.....):
self.name = name
...
def a1(self):
print(self.name,....)

obj = F1('alex0')
obj.a1()

class F1:

def a1(self):
print('alex')


obj = F1()
obj.a1()


静态方法(保存在类中,调用者类(无需创建对象),可以有任意个参数):
class F1:

@staticmethod
def a1(a1,a2):
print('alex')

F1.a1(1,2)


未完待续。。。。。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值