搜索
房产
装修
汽车
婚嫁
健康
理财
旅游
美食
跳蚤
二手房
租房
招聘
二手车
教育
茶座
我要买房
买东西
装修家居
交友
职场
生活
网购
亲子
情感
龙城车友
找美食
谈婚论嫁
美女
兴趣
八卦
宠物
手机

Python基础知识详解 从入门到精通(七)类与对象

[复制链接]
查看: 29|回复: 0

1万

主题

1万

帖子

4万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
45261
发表于 2020-2-14 18:56 | 显示全部楼层 |阅读模式
本篇重如果先容python,内容可先看目录
其他根柢常识详解,接待检察本人的其他文章
Python根柢常识详解 从入门到夺目(一)先容
Python根柢常识详解 从入门到夺目(二)根柢
Python根柢常识详解 从入门到夺目(三)语法与函数
Python根柢常识详解 从入门到夺目(四)列表、元组、字典、聚集
Python根柢常识详解 从入门到夺目(五)模块治理
Python根柢常识详解 从入门到夺目(六)文件利用
PS:很多人在进修Python的进程中,常常由于遇题目打点不了大要没好的教程从而致使自己放弃,为此我整理啦从根柢的python剧本到web斥地、爬虫、django、数据挖掘等【PDF等】必要的可以进Python全栈斥地交换.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,里面有最新Python教程项目可拿,不懂的题目有老司机打点哦,一路相互监视配合进步
界说类
留意,若类的方式与属性名一样。则属性会覆盖方式
一个类可以发生无数的工具,当工具的方式被挪用时候,工具会将本身作为第一个参数作为self参数传给方式,这样子便可以分辨是哪一个变量在挪用这个方式,所以界说方式时候第一个参数必定是self
关于self 不大白也没关系,每一个函数都放在第一个函数即可
__ init __(self) 是魔法方式用于传参数,利用方式以下
在类实例化起头时会自动被挪用,可以用于一些起头时候必要做的事
用了__init__可以间接在天生工具时候传参数
可是留意__init__不能返回数据,它默许放回None
关于魔法方式前期文章表白
def  aa():
        print('dd')
class aa :
         “这是类的分析”     #  用类名.__doc__ 可以输出
        g = 3
        def jj(self):
            aa()       #可以挪用全局函数
                print(‘jjjjj’)
class bb:
         #属性,,,,,,就是变量的值,,,比如鱼是红色的,多大,这些是属性
        a= 1
        b = ‘sssss’                  #这是类属性,全数实例共有的,只要一个实例点窜了它,全数实例都改变
            #方式      就是类内的函数
        def sename(self,name):
                self.name = nema      #如self.xxxx是实例属性,每个实例互不影响
        def pr(self)
                print(self.name)
        def hhh(self):
                pass
class cc:
        def __init__(self,name)
                self.name = name
                self.pr      #可以挪用下面的函数
        def pr(self)
                print (self.name)
利用
实例名.__dict__可以检察实例的属性(字典范例)
类名.__dict__可以检察类的属性(字典范例)
以上界说中aa为类,a为实例工具
还可以间接利用类工具 如aa.g 这是类工具
为了区分函数与类
约定类大写开首,函数小写开首
照实例工具
a = aa()
a.jj()
#结果为  jjjjj
a = bb()
a.setname(‘gfx’)
a.pr()
#结果为gfx
#如cc中利用了__init__可以间接在天生工具时候传参数
a = cc(‘gfx’)
a.        pr()
#结果为gfx
#实例工具可以间接加属性
#如a.hh = 8     相当于加一个hh属性
#实例工具利用时可以点窜属性的值
#a.g +=3
#则a.g    结果为6

利用类工具

a = aa()
b = aa()
c = aa()
#a,b,c是差此外实例工具
#如a.g    结果为3
b.g     结果为3
a.g +=3
#则a.g    结果为6
b.g     结果为3
#但若利用类工具,会间接改变类的属性
aa.g = 8
#则a.g    结果为8
b.g     结果为8

拜候属性

a.g 可以拜候
也可以
用getattr(实例工具名,‘属性名’,‘若无此属性返回内容’)
可是方式只要实例工具才华挪用,这个也是python的绑定概念
界说了实例工具,再删除该类,这个实例工具也是可以用的,
私有界说
由双下划线开首的为私有界说 __ a
不成被内部挪用,只能内部


class dd:
        __a = 4
        def  get(self)
                return __a
#利用               
g =dd
g.__a          #分歧法

内部利用私有变量
假如要在内部用a,必要借助方式get
g.get() 即可
现实上python的私有是一种 ‘假私有’(名字重整)
这是改变了变量名字 改成 __类名__变量名
所以g.__dd__a也可以在内部挪用
继续利用:
class 类1名(类2名): 继续利用:类1继续类2的方式和属性
不能继续私有方式和属性
继续是有次第的,从左往右,若有同名方式或属性,先继续前面的,后背的被屏障
假如子类中还界说与父类同名的方式或属性,则自动覆盖父类的对应的方式或属性
留意子类中再用__init__大要会覆盖父类中的必要的变量
打点方式有两个
一.        挪用未绑定的父类方式
如 界说子类时 父类名.__ init __(self)即可
二.        利用super函数
用法在子类中 super().父类中必要的方式名()
如 super().__ init __() 可以自动找父类,今后也不用点窜
可以多重继续,class 类1名(父类1名,父类3名,父类四名……):
如class ff (aa,cc,dd):
组合
即多个工具的组合、
就是把类的实例化放到另一个组合里

class a :
        def __init__(self,x)
                self.num = x
class c :
        def __init__(self,y)
                self.num = y
class d :
        def __init__(self,x,y)
                self.a = a(x)
                self.c = c(y)
        def pr(self)
                print(‘a有%d个,c有%d个‘%(self.a.num , self.c.num)
结果为
g = d (3,4)
A有3个,c有4个
关连的BIF(内置函数)
issubclass(class,classinfo)
若第一个参数class 是第二个参数的子类大要自己返回true 否则返回false
第二个参数可所以一个元组,里面有各个类,只要其中一个是第一个的父类即合适条件
如issubclass(class,object) 返回true,,,,object是全数类的一个基类,全数类默许继续object
isinstance(实例工具名,classinfo)
检擦实例工具能否属于第二个参数类,是则返回true 否则则反之
第二个参数可所以一个元组,里面有各个类,只要其中一个即可
假如第一个参数不是传入工具,不停返回false
hasattr(工具名,name)
若工具里面有第二个参数这个属性,有则true,name是一个字符串有‘‘ 或“”
getattr(工具名,name [, default])
返回工具指定属性的值,若指定属性不存在将[, default的值打印出来,若不输入[, default]则返回很是
s etattr(工具名,name ,value)
设定工具中指定属性的值,若属性不存在则新建一个属性并赋值
delattr(工具名,name)
删除工具的指定属性,若属性不存在则很是
Property (fget = None, fset =None ,fdel = None,doc = None)
去设备一个存在的属性
Fget,是获得属性的方式
Fset设备属性的方式
Fdel删除属性的方式
可是具体方式要自己传入
利用
class q:
        def __init__(self,size=10):
                self.size = size
        def get(self):
                return Self.size
        def set(self,value):
                self.size = value
        def dellll ():
                del self.size
        x = property (get, set,dellll)

设备size
q.x = 78
利用size
q.x
删除size
del q.x
说到这里。
很多人在进修Python的进程中,常常由于遇题目打点不了大要没好的教程从而致使自己放弃,为此我整理啦从根柢的python剧本到web斥地、爬虫、django、数据挖掘等【PDF等】必要的可以进Python全栈斥地交换.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,里面有最新Python教程项目可拿,不懂的题目有老司机打点哦,一路相互监视配合进步
本文的翰墨及图片根源于收集加上自己的想法,仅供进修、交换利用,不具有任何贸易用处,版权归原作者全数,若有题目请实时联系我们以作处置赏罚。

免责声明:假如加害了您的权益,请联系站长,我们会实时删除侵权内容,感谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2006-2014 全椒百姓网-全椒知名**,发布及时新鲜的全椒新闻资讯 生活信息 版权所有 法律顾问:高律师 客服电话:0791-88289918
技术支持:迪恩网络科技公司  Powered by Discuz! X3.2
快速回复 返回顶部 返回列表