栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

少儿Python—— 类与面向对象(2)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

少儿Python—— 类与面向对象(2)

01

类的定义

语法:

class 类名():

    类体

注意:

类名要遵循(首单词的首字母大写,不同单词之间首字母大写)

范例:

  •  
  •  
class MyClass:    pass

 

02

类的设计

三要素:

事物名称【类名】:举例:人

事物的属性【变量】:名词,举例:姓名,年龄。

事物的行为【函数/方法】:动词,举例:吃,玩。

 

03

类中的方法和变量

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
#定义类class Person():#事物的属性(变量)   name = ""   age = 0
 #方法   def eat(self,food):       print("eating",food)       def play(self,ball):       print("palying",ball)

事物的属性【变量】:姓名,年龄。

事物的行为【函数/方法】:吃,玩。

 

 

04

类中方法和属性的使用

创建实例对象

 

创建实例对象就是类的实例化,类似函数调用方式

语法:

对象名 = 类名()

 

这里使用类的名称Person来实例化

  •  
  •  
  •  
  •  
  •  
#创建Person类的第一个对象 p1=Person() #创建Person类的第二个对象 p2=Person()

 

访问属性和方法

 

(1)可以使用点号 . 来访问对象的属性和方法。

语法:

访问变量采用:对象名.属性名

访问方法采用:对象名.方法名(参数列表)

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
#定义类class Person():   #属性   name = ""   age = 0
   #方法   def eat(self,food):       print("eating",food)   def play(self,ball):       print("playing",ball)
#实例化对象p1 = Person()p2 = Person()
#访问属性#语法:对象.属性名#赋值:对象.属性 = 值p1.name = "小明"print(p1.name)p1.age = 21print(p1.age)
#调用方法p1.play("football")p1.eat("香蕉")

 

(2)也可以使用以下函数的方式来访问属性:

getattr(obj, name[, default]) : 访问对象的属性。

hasattr(obj,name) : 检查是否存在一个属性。

setattr(obj,name,value) : 设置一个属性。如果属性不存在,会创建一个新属性。

delattr(obj, name) : 删除属性。

 

hasattr(obj,name) 范例:

  •  
  •  
  •  
  •  
  •  
  •  
  •  
>>> class C:def __init__(self,x=0):      self.x=x>>> c1=C()>>> hasattr(c1,'x')True>>>

 

 

getattr(object,name[,default])范例:

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
>>> getattr(c1,'y')Traceback (most recent call last):  File "", line 1, in     getattr(c1,'y')AttributeError: 'C' object has no attribute 'y'>>> getattr(c1,'y','你访问的属性不存在')'你访问的属性不存在'>>> 

 

setattr(object,name,value)范例:

  •  
  •  
  •  
  •  
>>> setattr(c1,'y','你所访问属性存在了')>>> getattr(c1,'y')'你所访问属性存在了'>>> 

 

delattr(object,name)范例:

  •  
  •  
  •  
  •  
  •  
  •  
  •  
>>> delattr(c1,'y')>>> delattr(c1,'y')Traceback (most recent call last):  File "", line 1, in     delattr(c1,'y')AttributeError: y>>>

 

 

05

构造函数和析构函数

构造函数

 

构造函数【作用:创建对象,给对象的成员变量赋初始值】
调用的时机:当一个对象被创建的时候,第一个被自动调用的函数

语法: 

def __init__(self,args1,args2....)
     函数体


说明:
 a.之前的写法中并没有显式的定义__init__函数,说明系统默认提供了一个无参的构造函数
 

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
>>> class Rectangle:def __init__(self,x,y):  #重写      self.x=x   #self.x类实例化之后实例对象的局部变量   x:传入的参数      self.y=y     #init方法返回值一定是Nonedef getPeri(self):      return (self.x+self.y)*2def getArea(self):      return self.x*self.y>>> rect=Rectangle(3,4)>>> rect.getPeri()14>>> rect.getArea()7>>>

 

 

析构函数

与构造函数正好相反,当对象被销毁的时候自动调用的函数,被称为析构函数

 

格式:__del__(self) 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
>>> class C:  def __init__(self):    print("我是__init__方法,我被调用了...")  def __del__(self):    print("我是__del__方法,我被调用了...")
    >>> c1=C()我是__init__方法,我被调用了...>>> c2=c1>>> c3=c2>>> del c3>>> del c2>>> del c1我是__del__方法,我被调用了...>>>

  

当没有任何变量去引用这个对象的时候,垃圾回收机制自动把它销毁


使用情景:清理工作,比如关闭数据库,关闭文件等


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/805462.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号