python中的类和对象是什么_python学习之类和对象

类和函数中都可以创建闭包或者内部函数

self 代表实例对象本身

访问一个属性,它同时也是一个对象,拥有自己的属性

特殊类属性

C.__name__ 类C的名字

C.__doc__ 类C的文档字符串

C.__bases__ 类C的所有父类构成的元组

C.__dict__ 类C的属性

C.__module__ 类C定义所在的模块

c.__class__ 实例c对应的类

C.__mro__ 类查找顺序

issubclass(sub,sup) sub子类,sup父类,判断子类是否是父类子类

isinstance(obj1,obj2) obj1实例,obj2类,判断obj1是否是obj2实例

vars() 与dir()相似,只是给定的对象参数都必须有一个__dict__属性,返回一个字典。

动作和特征的集合叫对象

类抽象的共同的动作,共同的特征

类:把一类事物的相同的特征和动作整合到一起就是类

类是一个抽象的概念

对象:就是基于类而创建的一个具体的事物(具体存在的)

也是特征和动作整合到一起

1.什么叫类:类是一种数据结构,就好比一个模型,该模型用来表述一类事物(事物即数据和动作的结合体),

用它来生产真实的物体(实例)

2.什么叫对象:睁眼睛,你看到的一切的事物都是一个个的对象,你可以把对象理解为一个具体的事物

(事物即数据和动作的结合体)

(铅笔是对象,人是对象,房子是对象,狗是对象

3.类与对象的关系:对象都是由类产生的,上帝造人,上帝首先有一个造人的模板,这个模板即人的类,然后

上帝根据类的定义来生产一个个人

4。什么叫实例化:由类生产对象的过程叫实例化,类实例化的结果就是一个对象,或者叫做一个实例(实例=对象)

属性

类是用来描述一类事物,类的对象指的是这一类事物中的一个个体是事物就要有属性,

属性分为

1.数据属性:变量

2.函数属性:函数 面向对象里通常称为方法

注意:类和对象均用点来访问自己的属性

类名.__dict__查看类属性字典

实例.__dict__查看实例属性字典,作用域是__init__范围

静态属性@property 封装逻辑

class test_static(object):

def __init__(self):

self.width=10

self.hight=5

def cal_area(self):

return self.width*self.hight

@property

def mutstion_cal_area(self):

return self.width*self.hight

test=test_static()

print(test.cal_area())

print(test.mutstion_cal_area)

类方法 (跟实例没有关系,类级别操作)

class Test_Static(object):

tag = 1

def __init__(self):

self.width = 10

self.hight = 5

@classmethod

def tell_info(cls):

print('---->', cls.tag)

Test_Static.tell_info()

静态方法(名义上归属类管理,不能使用类变量和实例变量,是类的工具包)

class Test_Static(object):

tag = 1

def __init__(self):

self.width = 10

self.hight = 5

@staticmethod

def wash_body(a,b,c):

print('%s %s %s正在洗澡'%(a,b,c))

Test_Static.wash_body('zhao','qian','sun')

t1=Test_Static()

t1.wash_body('add','sub','mol')

组合(类跟类之间的没有共同点,但是它们之间是有关联的)

class School:

def __init__(self,name,addr):

self.name=name

self.addr=addr

class Course:

def __init__(self,name,price,period,school):

self.name=name

self.price=price

self.period=period

self.school=school

def zhao_sheng(self):

print('%s zheng zai zhao sheng'%self.name)

s1=School('oldboy','beijing')

s2=School('oldboy','nanjing')

s3=School('oldboy','dongjing')

c1=Course('linux',10,'1h',s1)

print(c1.__dict__)

print(c1.school)

print(s1)

{'name': 'linux', 'price': 10, 'period': '1h', 'school': <__main__.School object at 0x0000000002943320>}

<__main__.School object at 0x0000000002943320>

<__main__.School object at 0x0000000002943320>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值