python OPP面向对象

本文详细介绍了Python的面向对象编程,包括类和实例的创建、属性、构造方法、继承、多态、封装以及数据封装。重点讲解了如何创建类、实例化对象、使用构造方法初始化对象、类和实例的属性、覆盖方法、以及多态性的概念和实现。同时,还探讨了Python中类的其他属性,如类的名称空间和对象的绑定方法。最后,文章通过实例展示了如何使用super()调用父类的属性和方法,以及如何通过组合和数据封装来实现对象的组织和信息隐藏。
摘要由CSDN通过智能技术生成

Python 的所有对象都有三个特性:


身份:每个对象都有一个唯一的身份标识自己,任何对象的身份都可以使用内建函数 id() 来得到,可以简单的认为这个值是该对象的内存地址。
类型:对象的类型决定了对象可以保存什么类型的值,有哪些属性和方法,可以进行哪些操作,遵循怎样的规则。可以使用内建函数 type() 来查看对象的类型。
值:对象所表示的数据

类和实例

 

python 中创建类和对象

 

创建类

使用关键字 class
class Foo:
pass
class Foo():
x = 1
def func(self):
pass
class Foo():
x = 1
def __init__(self):
self.x = 100

构造方法


__init__ 是Python中一个特殊的函数名,是一个类实例化对
象的一个初始化方法
self 参数也是python的一个特殊参数的名称,约定俗成的名字
self 实际上指的就是正在被创建的对象本身

class Person(object):
def __init__(self, name):
self.name = name # 属性
# self 可以其他的变量名,但是 self 是业界规范。

实例化对象


类名加上小括号就可创建一个对象了,这个过程也叫实例化对象。
class Person():
def __init__(self, name):
#print(type(self), self)
self.Name = name
# 实例化对象
teacher = Person("yangge")

属性


class Person():
city = "BeiJing" # 类的数据属性
def __init__(self,name,age):
self.Name = name # 实例的数据属性
self.Age = age
def run(self):
print('{} is
running'.format(self.Name))

类属性可以被类和对象调用 , 是所有对象共享的
实例属性只能由对象调用

类的其他属性


# 查看类的名字(这里的类名是字符串类型的 )
Person.__name__, type(Person.__name__)
# 查出的是一个字典, key为属性名,value为属性值
Person.__dict__
Person.__doc__ # 就是把注释显示出来
Person.__class__ # 自己是哪个类

类名称空间
print(Person.__dict__)
print(Person.__dict__['run'])

对象名称空间
print(teacher.__dict__)
print(teacher.__dict__.get('Name'))

对象可以使用类命名空间里的变量
teacher.city
# 局部 ---> 类
# 对象不会去全局找,只会在类的范围找。

总结:
类有数据属性和函数属性
对象只有数据属性

对象的绑定方法


print(Person.run)
print(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值