标签:可扩展 类型 属性 相同 报错 一个 init 面向 应该
面向对象是一门编程思想
对象在这里指的可不是你的男女朋友
在这里对象指的是特征与技能的结合体
基于改编成思想就好比在创造世界,一种上帝式的思维方式
注意:要将自己当作一个上帝,想创造什么就创造什么,为所欲为
该编成思想的优缺点是:
优点:
? 可扩展性高
缺点:
? 编写程序的复杂度比面向过程高
在说这个之前我们要知道什么是类?
类指的是类型,类别
在程序中,必须现有类,通过调用类,产生对象
对象指的是特征与技能的结合体,类指的是对象之间相同的特征与技能的结合体
class 类的名字 :
? —对象之间相同的特征
? —技能
# 定义老男孩学生类,命名规范,驼峰命名法
class OldboyStudent:
# 都在老男孩学习,就是对象之间相同的特征
school = "oldboy"
# 注意:在类内部定义函数,会有一个默认参数,self
# 学生的学习技能
def learn(self):
print("learning....")
# 调用类时,产生对象obj
# 对象调用方法时: 会将对象当做第一个参数传入方法中。
obj = OldboyStudent()
'''
由对象来调用类内部的函数,称之为对象的绑定方法。
对象的绑定方法特殊之处: 会将对象当做第一个参数传给该方法。
'''
上面说的都是对象之间相同的特征
下面我们来说一下,如何为对象传入独有的特征
使用__ init __()方法
在这里要注意:
由对象来调用类内部的函数,称之为对象的绑定方法
看到self就应该知道是对象本身
init()方法是在类内部定义的方法,在调用类时触发,会自动将对像当做第一个参数传入,括号内的所有参数会一并传给init()
class OldboyStudent:
school = "oldboy"
# 为对象传入独有的name,age,sex
# 注意: 看到self就应该知道是对象本身
def __init__(self, name, age, sex):
self.name = name
self.age = age
self.sex = sex
def learn(self):
print("learning....")
# 为obj对象独有特征传入参数
obj = OldboyStudent("kang", 18, "male")
print(obj1.name, obj1.age, obj1.sex)
# 打印结果
# kang 18 male
实现类或对象属性操作:增、删、改、查
class OldboyStudent:
school = "oldboy"
def __init__(self, name, age, sex):
self.name = name
self.age = age
self.sex = sex
def learn(self):
print("learning....")
# 调用类时,产生对象obj1
# 类名+() 产生对象
obj1 = OldboyStudent("kang", 18, "male")
print(obj1.name, obj1.age, obj1.sex)
print(obj1.school)
# 实现类或对象属性操作:增、删、改、查
# 增
obj1.girlfind = "zhao"
print(obj1.girlfind)
# 删
del obj1.sex
# print(obj1.sex) # 已经删除掉了,现在再打印就会报错
# 改
obj1.school = "old"
print(obj1.school)
# 查
print(obj1.age) # 查看obj1对象中的年龄
1、对象.属性会先找对象自己的
2、若对象没有,会找类的
3、若类没有,就会报错
标签:可扩展 类型 属性 相同 报错 一个 init 面向 应该
原文地址:https://www.cnblogs.com/aheng/p/11929225.html