码丁实验室,一站式儿童编程学习产品,寻地方代理合作共赢,微信联系:leon121393608。
类的定义
语法:
class 类名():
类体
注意:
类名要遵循(首单词的首字母大写,不同单词之间首字母大写)
范例:
class MyClass:pass
类的设计
三要素:
事物名称【类名】:举例:人
事物的属性【变量】:名词,举例:姓名,年龄。
事物的行为【函数/方法】:动词,举例:吃,玩。
类中的方法和变量
#定义类class Person():#事物的属性(变量)name = ""age = 0#方法def eat(self,food):print("eating",food)def play(self,ball):print("palying",ball)
事物的属性【变量】:姓名,年龄。
事物的行为【函数/方法】:吃,玩。
类中方法和属性的使用
创建实例对象
创建实例对象就是类的实例化,类似函数调用方式
语法:
对象名 = 类名()
这里使用类的名称Person来实例化
#创建Person类的第一个对象p1=Person()#创建Person类的第二个对象=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 "<pyshell#197>", line 1, in <module>getattr(c1,'y')AttributeError: 'C' object has no attribute 'y'> getattr(c1,'y','你访问的属性不存在')'你访问的属性不存在'>
setattr(object,name,value)范例:
> setattr(c1,'y','你所访问属性存在了')> getattr(c1,'y')'你所访问属性存在了'>
> delattr(c1,'y')> delattr(c1,'y')Traceback (most recent call last):File "<pyshell#202>", line 1, in <module>delattr(c1,'y')AttributeError: y>
构造函数和析构函数
构造函数
构造函数【作用:创建对象,给对象的成员变量赋初始值】
调用的时机:当一个对象被创建的时候,第一个被自动调用的函数
语法:
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__方法,我被调用了...>
当没有任何变量去引用这个对象的时候,垃圾回收机制自动把它销毁
使用情景:清理工作,比如关闭数据库,关闭文件等
THE END





