对象
1.对象的优点:
1.多态:可以对不同类的多项进行相同的操作
1.多态和方法:绑到对象特性上的函数称为方法(method)
2.多态的多种形式:任何不知道对象的类型,但是需要对对象“做点什么“的时候就都会用到多态
2.封装:对外部世界隐藏对象工作的细节
3.继承:以通用的类为基础建立专门的类对象
类
类代表对象的集合
类的命名方法:驼峰命名发
1. 将类名中的每个单词的首字母都大写,且不使用下划线
2. 实例名与模块名都采用小写格式,并在单词间使用下划线
1.创建类
dog.py
--------------------------------------------------------------
class Dog:
"""一次模拟小狗的简单尝试"""
def _init_(self,name,age):
"""初始化属性name和age"""
self.name = name
self.age = age
self.used = 123 # 类中的每个属性都必须有初始值,哪怕这个值是0或者空字符,在有些情况下,如设置默认值时,在方法_init_()内制定这种哦不能够初始值是可行的,若这样做了,就无需为它提供初始值的形参
def sit(self):
"""模拟小狗被命令时蹲下"""
print(self.name.title() + "is now sitting" +self.used+ ".")
def roll_over(self):
"""模拟小狗被命令是打滚"""
print(self.name.title + "rowed over!")
-------------------------------------------------------------------------------
my_dog = Dog(while",3) # 类的事列化,根据约定,在python中,我们通常认为首字母大写的名称为类,小写的名称值得是根据类创建哦事列.
my_dog.sit()
------------------------------------------------------------------------------
2.修改属性的值
1.直接通过事列进行修改
class Dog:
--snip--
my_dog = Dog("lucy",6)
my_dog.used = 456 #修改类的属性
my_dog.sit()
2.通过方法进行设置
class Dog:
--snip--
def update_used(self,msl)
self.used = msl
my_dog = Dog("alxe",5)
my_dog.update_used(789)
my_dog.sit()
####可以对方法update_used()进行扩展,添加一些逻辑####
class Dog:
--snip--
def update_used(self,msl)
if msl >= self.used: # 限制used属性只可以增大,不可以减小
self.used = msl
else:
print("xxxxxooooo")
3.通过方法进行递增
class Dog:
--snip--
def update_used(self,msl)
--snip--
def zizeng(self,aa)
self.used +=aa
my_dog = Dog("eric",8)
my_dog.sit()
my_dog.update_used(888)
my_dog.sit()
my_dog.zizeng(100)
my_dog.sit()
3.继承
子类继承了父类的所有属性和方法,同时还可以自定义自己的属性和方法
方法
方法是储存在对象内部的函数,其与其他函数的区别在于:方法总是将对象作为自己的第一个参数