python 是一门面向对象的语言
所谓的面向对象,就是在编程的时候尽可能的去模拟真实的现实世界,按照现实世界中的逻辑去处理问题,分析问题中参与其中的有哪些实体,这些实体应该有什么属性和方法,我们如何通过调用这些实体的属性和方法去解决问题
两种编程思想
面向过程
一种以过程为中心的编程思想
首先分析解决问题所需要的步骤,然后用函数将这些步骤一步一步的实现,然后按顺序依次调用运行
面向对象
一种更符合我们人类思维习惯的编程思想
复杂的事情简单化
面向对象开发就是不断的创建对象,使用对象,操作对象做事情
面向对象程序设计规则
首先分析有哪些类
每个类有哪些属性和行为
类与类之间存在的关系
类,方法,类变量的定义
类(class):用来描述具有相同的属性和方法的对象的集合。它定义了集合中每个对象所共有的属性和方法。对象时类的实例、
方法:类中定义的函数。类的方法与普通的函数只有一个特别的区别—它们必须有一个额外的第一个参数名称,按照惯例它的名称是self(其实取什么名字不重要,只要有这个参数就行,默认系统叫self)。
类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
class Person():
name = "noname"
def get_name(self):
return self.name
print(Person.name)
p = Person()
print(p.name)
print(p.get_name())
#p.name = "lili"
p.name= 'xiaoming'
Person.name = 'lili'
print(p.name)
p1 = Person()
print(p1.name)
实例引用,实例变量
实例:类的一个具体对象,比如,车类是一个类,摩托车或者自行车就是车类的一个实例。类是抽象的,实例是具体的。
实例引用:给一个对象起一个别名,比如,a是对象,b是a的引用,则a和b的地址空间都是一样的,修改b,则a就被同时修改、
实例变量:实例属性,在任意方法内部,以‘self.变量名’的方式定义的变量。
实例变量只能通过对象名访问,无法通过类名访问
class Person:
def __init__ (self,name,age,gender):
self.name = name
self.age = age
self.gender = gender
def set_att(self, value): # 属性放在方法里面
self.value = value
def eat(self):
print(f"name :{self.name}, age:{self.age}, gender:{self.gender} 我在吃.")
def drink(self):
print(f"name :{self.name}, age:{self.age}, gender:{self.gender} 我在吃.")
def run(self):
print(f"name :{self.name}, age:{self.age}, gender:{self.gender} 我在吃.")
xiaoming = Person("xiaoming", 10, 'male')
xiaohong = Person("xiaohong", 15, 'female')
print(xiaoming.name)
xiaoming.run()
xiaoming.set_att("fit")
print(xiaoming.value)