面向过程是将问题按步骤进行思考
面向对象是将一个大的问题分为若干小问题,小问题本身再去用面向过程解决
类对象:包含数据类型、方法
创造实例对象对象:“饼干”
类:做饼干的“模具”
“方法代码是共享的,属性数据不共享”。
class My_Score: #类名首字母大写,采用驼峰原则 def __init__(self,name,score): #self指的是对象的地址 self.name = name self.score = score def say_score(self): print('{0}的成绩是:{1}'.format(self.name,self.score)) s1 = My_Score('sxl',99) #使用类名,调用构造函__init__() s1.say_score() #调用该对象所属类的方法 My_Score.say_score(s1) #解释器实际调用 sxl的成绩是:99 sxl的成绩是:99
对象的创建过程
类对象首先__new__()方法: 用于创建对象
然后__init__()方法:初始化创建好的对象
类本身也是对象
print(type(My_Score))类属性
class My_Score: #类名首字母大写,采用驼峰原则 school ='xupt' #类属性 def __init__(self,name,score): self.name = name self.score = score def say_score(self): print('{0}学校的{1}的成绩是:{2}'.format(My_Score.school,self.name,self.score)) print('{0}学校的{1}的成绩是:{2}'.format(self.school,self.name,self.score)) s1 = My_Score('sxl',99) s1.say_score() xupt学校的sxl的成绩是:99 xupt学校的sxl的成绩是:99类方法
类方法,创建实例对象时不会创建它。只能是类对象本身使用。
class My_Score: #类名首字母大写,采用驼峰原则 school ='xupt' #类属性 def __init__(self,name,score): self.name = name self.score = score def say_score(self): # print('{0}学校的{1}的成绩是:{2}'.format(self.school,self.name,self.score)) print('{0}的成绩是:{1}'.format(self.name, self.score)) @classmethod def print_school(cls): print(My_Score.school) s1 = My_Score('sxl',99) s1.say_score() My_Score.print_school() sxl的成绩是:99 xupt静态方法 __del__方法(析构函数)和垃圾回收机制
__call__方法和可调用对象1.__del__方法称为“析构方法”,用于实现对象被销毁时所需的 *** 作。比如:释放对象占用的资源,例如:打开的文件资源、网络连接等。
2.Python 实现自动的垃圾回收,当对象没有被引用时(引用计数为 0),由垃圾回收器调用__del__方法
用call方法实现和函数一样的传参调用
class SalaryAccount: '''工资计算类''' def __call__(self, salary): yearSalary = salary*12 daySalary = salary//30 hourSalary = daySalary//8 return dict(monthSalary=salary,yearSalary=yearSalary,daySalary=daySalary,hourSalary=hourSalary) s = SalaryAccount() print(s(3000)) {'monthSalary': 3000, 'yearSalary': 36000, 'daySalary': 100, 'hourSalary': 12}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)