面向过程(c语言)
面向对象:站在上帝的视角下,世间万物一切皆对象。
先通过用户需求建立模型,再用户多次交互改进
注意:class 定义类的时候,类的首字母必须是大写
调用方法为: 类名+.show 的方法.
面向对象的三个特性:
1、封装
A、实例属性
B、数据属性(类里面的变量)
2、继承
3、多态
要调用类里面的变量,以及方法(函数)等.首先对类进行实例化
obj是类Person()实例化后的对象
类实例化的过程也是类初始化的过程
类:
经典类
新式类
# 定义类
class Person(object):
# name和age可以理解为类的属性
# init-->是初始化
# 构造方法/构造函数
def __init__(self,name,age):
# 实例属性
self.name=name
self.age=age
print('start')
# 清理操作
def __del__(self):
print('end')
# 定义一个show方法返回的是类本身自己
def show(self):
# format()字符串格式化
print('name:{0},age:{1}'.format(self.name,self.age))
# 类实例化的过程,也是针对构造方法初始化的过程(等于调用了__init__的方法)
obj=Person(name='wr',age=18)
obj.show()
print(obj.name)
结果:
start
name:wr,age:18
wr
end
封装
# 封装
class Animal(object):
def __init__(self,age):
self.age=age
# 获取初始age
def getAge(self):
return self.age
# 修改获取的age
def setAge(self,age):
if age>10 and age<100:
self.age=age
else:
print('年龄错误')
objAnimal=Animal(age=30)
print(objAnimal.getAge())
objAnimal.setAge(age=90)
print(objAnimal.getAge())
class Animal(object):
address='地球'
def __init__(self,age):
self.age=age
def show(self):
print('it is come from {0},and age is {1}'.format(self.address,self.age))
objAnimal=Animal(age=40)
objAnimal.show()
print(objAnimal.address)
print(objAnimal.age)
结果:
30
90
it is come from 地球,and age is 40
地球
40
方法:
1、普通方法(方法可以读写)
2、特性方法(具备只读属性,方法不能有形式参数)
3、静态方法(属于类,只能用类名来调用),一般把数据属性使用静态方法来进行了处理
class Animal(object):
# address='地球'
def __init__(self,age):
self.age=age
def show(self,name=' 野猪'):
print('it is come from{0},and age is {1},and name is{2}'.
format(self.address(),self.age,name))
def func(self,**kwargs):
print(kwargs)
@staticmethod
def address():
return ' 地球'
@property
def info(self):
print('hello world')
@property
def getAge(self):
return self.age
objAnimal=Animal(age=30)
objAnimal.show()
objAnimal.info
objAnimal.func(name='wuya',age=18,city='xian')
结果:
it is come from 地球,and age is 30,and name is 野猪
hello world
{'name': 'wuya', 'age': 18, 'city': 'xian'}