标签:解决问题 面向过程编程 面向 简单的 elf 了解 对象 hello 一个个
面向过程的核心就是过程,即解决问题的步骤。就如同工厂的流水线生产。
面向对象的核心就是对象,即将所有事物都看成是一个对象,这些对象都是一个个的属性与方法组成的,更类似于功能的直接赋予。
面向对象主要解决面向过程的拓展性差。但是衡量一款软件好坏的因素不是简简单单的一个拓展性,而是一系列的成本、性能、可靠性等等等等。。。
对象是属性与方法的结合体,而类便是对象的一系列模板。
例如:动物这个类别,世界上许许多多的事物都可以称之为动物,并且我们可以由动物这一个模板分出许许多多的对象(猫、狗、鱼、狮子、大象),这些都可以统称为动物,但他们又是动物的一个一个“实例”。
在程序中我们是先定义一个类,即对象的一个模板,类中是对对象的共同属性与方法的一个归纳。
而后我们才会根据这个模板来生成对应的对象。
通过上面的简单了解我们来尝试下定义一个类
#class关键字 类名:
# pass
class HuMan:
pass
##这就是一个最简单的一个对象的定义方式
class MyClass:
"""一个简单的类实例"""
i = 12345
def f(self):
return 'hello world'
# 实例化类
x = MyClass()
# 访问类的属性和方法
print("MyClass 类的属性 i 为:", x.i) # MyClass 类的属性 i 为: 12345
print("MyClass 类的方法 f 输出为:", x.f()) # MyClass 类的方法 f 输出为: hello world
类中有一个名为__init__()的方法,类的实例化就会自动调用__init__()方法。
但是我们上面的程序并没有写这个方法为什么还可以对类进行实例化呢?
这是因为当我们创建类的时候它便是默认存在的。相对的你也可以自己定义这个方法,对这个方法进行修改,添加形参,使得实例化对象的时候可以传递参数。
class Complex:
def __init__(self, realpart, imagpart):
self.r = realpart
self.i = imagpart
x = Complex(3.0, -4.5)
print(x.r, x.i) # 3.0 -4.5
其中的self是代表类的实例,并非类本身。
类的方法与函数的区别便是,方法必须有一个额外参数,即self(默认使用这个名字,也可以使用其他名字),它代表的是类的实例对象。
定义在类内部的方法:
#类定义
class people:
#定义基本属性
name = ''
age = 0
#定义私有属性,私有属性在类外部无法直接进行访问
__weight = 0
#定义构造方法
def __init__(self,n,a,w):
self.name = n
self.age = a
self.__weight = w
def speak(self):
print("%s 说: 我 %d 岁。" %(self.name,self.age))
# 实例化类
p = people('runoob',10,30)
p.speak() # runoob 说: 我 10 岁。
标签:解决问题 面向过程编程 面向 简单的 elf 了解 对象 hello 一个个
原文地址:https://www.cnblogs.com/Gredae/p/11419105.html