python中ht_python之面向对象

7.1 面向对象的基本内容

7.1.1 格式

对象和类的关系,对象是类的实例

具有相同方法和属性的一类事物称为类

一个拥有具体属性值和动作的具体个体

class Files:    #类中的函数不再称为函数,称为方法

def write(self,name):

print(name)

return 666

def read(self,name):

print(name)

def append(self,name):

print(name)

obj = Files()   #创建该类的对象

result = obj.write('alex')   #通过对象调用方法

print(result)

类内部数据(包括嵌套的类)在解释器解释的时候就执行,方法内部 调用的时候才执行

class Foo(object):

print(123)     #一运行就执行

def func(self):

pass

class Base(object):

print(456)

7.1.2 面向对象的特性

特性:面向对象有三个主要特征,分别是封装性、继承性和多态性。

7.1.2.1 封装

封装分为数据储存的封装和对方法的封装归类

class Person:

def __init__(self,n,a,g):

self.name = n

self.age = a

self.gender = g

def show(self):

temp = '我是%s,年龄%s,性别%s'%(self.name,self.age,self.gender,)

print(temp)

obj = Person('薛奎','20','太监')  #将数据直接封装到对象里,方便使用 ,得有__init__

obj.shouw()

class Files:

def write(self,content):

with open(self.file,mode='w',encoding ='utf-8')as f1:

f1.write(content)

f1.close()

def read(self):

with open(self.file,mode='r',encoding='utf-8')as f2:

content = f2.read()

f2.close()

obj = Files()   #又称实例化一个对象

obj.file = 'read.txt'    #obj就是方法中的self ******

obj.write('123')

obj.read()

7.1.2.2 继承

class Base:

def f1(self):

pass

class Foo(base): #类(类)即代表括号外是派生类, 里面是基类,运行类内部,没有的会去基类里寻找

def f2(self):

pass

obj = Foo()

obj.f1()

obj.f2()

多个类中如果有公共的方法,可以放到基类中避免重复编写。

class Base:

def f1(self):

print('base.f1')

class Foo(Base):

def f2(self):

self.f1()

print('foo.f2')

def f1(self):

print('foo.f1')

obj = Foo()

obj.f2() #结果 'foo.f1' 'foo.f2' obj是实例化的foo,优先在 Foo中寻找

class Base:

def f1(self):

self.f2()

print('base.f1')

def f2(self):

print('base.f2')

class Foo(Base):

def f2(self):

print('foo.f2')

obj = Foo()

obj.f1() #结果 'foo.f2' 'base.f1'

注意事项:self 到底是谁?self 是哪个类创建的,就从此类开始找,自己没有就找父类。

7.1.2.3 多态

一个类表现出来的多种状态

什么是鸭子模型?

对于

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值