18 面向对象初识1
class person:
level="高级动物"
mind="有思想"
def __init__(self,name,age,gent,area,hobby):
self.name=name
self.age=age
self.gent=gent
self.area=area
self.hobby=hobby
print("__init__")
pass
def walk(self):
pass
def eat(self):
pass
aQ=person("Q","16","男","中国","吹牛")
print(aQ.__dict__)
一.类
1.具有相同属性和技能的一类事物.
2.类的结构( 两部分 )
(1).静态变量 ( 字段 )
level="高级动物"
mind="有思想"
(2).动态方法 ( 函数 )
def __init__(self,name,age,gent,area,hobby):
self.name=name
self.age=age
self.gent=gent
self.area=area
self.hobby=hobby
print("__init__")
pass
def walk(self):
pass
def eat(self):
pass
3.类名调用变量,方法
(1).类名查看类中所有变量( 字段 ),方法( 函数 )
print(类名.__dict__) #类中所有的东西 属性方法 只能查不能增删改类中的东西.
(2).类名查找静态变量 ( 字段)
常用:通过类名.变量名
查:print(person.mind)
增:person.create="有创造力"
改:person.mind="行尸走肉"
删:del person.mind
不常用:print(类名.__dict__[mind])
(3).类名对方法的操作 ( 函数)
常用 : 类名.方法名 (函数)
person.walk( 参数 )
不常用 : 类名.__dict__["walk"]
二.对象.
1.对象是类的具体表现.
2.实例化对象
写法: 类名 ( ) 相当于实例化一个对象
3执行流程
(1).产生一个对象空间 ; ( aQ=类名 ( ) aQ是一个对象空间 )
(2).自动执行类中__init__方法,并将对象空间传给self; ( def __init__(self) 把aQ传给self )
(3).执行__init__方法给对象加属性,并将完善的对象返回给类名.
def __init__(self,name,age,gent,area,hobby):
self.name=name #self.name 中 name 表示对象属性 等号右边的 name 指 形参
self.age=age
self.gent=gent
self.area=area
self.hobby=hobby
print("__init__")
4.对象查找对象中的所有属性
print(aQ.__dict__)
5.对象操作对象中的静态变量
查:对象.name # print(aQ.name)
增:对象.job="student" # aQ.job="stu"
删:del 对象.age
改:对象.gent="男"
6.对象操作类中的静态变量 只能查询,不能增删改
对象名.类中的变量(level) # print(aQ.level)
7.对象执行类中的方法
对象名.walk( ) # aQ.walk( ) # 无需传参数 self位置的参数,自动接收对象空间.
补充:__init__叫构造方式,执行方法时也可以添加属性(临时)
print("__init__")
self.eye=eye
在类的非__init__中也可以给对象添加属性,前提必须先执行这个方法
def walk(self,skincolor)
self.skincolor=skincolor