前言
hello,各位小伙伴,好久不见,前段时间由于事情繁多,这个面向对象的语法比较的重要,而且有一些小难度,所以小王就没有定期分享文章了,正所谓“一心一意才可以做好每一件事情”,希望大家在学习的时候也要这样哟。
Python本来就是一门简单的编程语言,但是大家也要有好的学习方法和态度哟,这样才可以真正的学懂这一门语言!希望大家在自己空闲的时间可以多去涉猎一些自己专业方面的知识,所谓天道酬勤。唯有不断的修炼自己,才能提高自己幸运值。
话不多说!我们开始学习吧!!!
类对象
class Myclass: '''这是一个类''' i=123456 def f(self): return "hello python" x=Myclass()#实例化类,和函数调用类似 print(x.i) print(x.f())
# '''类方法''' class Smplclass: def info(self): print("这是我的类!") def sum(self,x,y): return x*y se=Smplclass() print(se.sum(10,12)) se.info()
# '''构造方法''' class Complex: def __init__(self,name,age):#类的实例化操作会自动调用init方法 self.name=name self.age=age x=Complex("bob",18) print(x)#没有实例化属性就会出现你看不懂的值 print(x.name,x.age)
'''调用类自身的方法和全局函数''' def diao(x,y): return (abs(x),abs(y)) class Ant: def __init__(self,x=0,y=0): self.x=x self.y=y self.d_point() def yi(self,x,y): x,y=diao(x,y) self.e_point(x,y) self.d_point() def e_point(self,x,y): self.x+=x self.y+=y def d_point(self): print("你的当前位置是:(%d,%d)"%(self.x,self.y)) ant_a=Ant() ant_a.yi(2,7) ant_a.yi(-5,6)
'''模拟狗狗的日常''' class Dog(): '''小狗狗''' def __init__(self,name,age): '''初始化属性name和age''' self.name=name self.age=age def wang(self): '''模拟狗狗的汪汪叫''' print(self.name.title()+"汪汪!") def shen(self): print(self.name.title()+"伸舌头") my_dog=Dog("junne",15) you_dog=Dog("linux",16) print("我的爱犬的名字是:"+my_dog.name.title()+".") print("我的爱犬已经是:"+str(my_dog.age)+"岁了!") my_dog.wang() my_dog.shen() print("\n你的爱犬的名字是:"+you_dog.name.title()+".") print("你的爱犬已经是:"+str(you_dog.age)+"岁了!") you_dog.wang() you_dog.shen()
'''析构方法''' class Newclass(object): num_count=0 #全局变量 def __init__(self,name): self.name=name Newclass.num_count +=1 print(name,Newclass.num_count) def __del__(self):#定义析构方法__del__释放内存空间!!!! Newclass.num_count-=1 print("析构",self.name,Newclass.num_count) def test(self): print("aa") aa=Newclass("hello") bb=Newclass("world") cc=Newclass("aaaa") del aa del bb del cc print("over!")
'''静态方法和类方法''' '''静态方法没有隐含调用参数,应该使用@staticmethod 类方法隐含调用的参数是类,应该使用@classmethod ''' class jing: def __init__(self,x=0): self.x=x @staticmethod def static_method(): print("此处调用了静态方法!") @classmethod def class_method(cls): print("此处调用了类方法!") jing.static_method() jing.class_method() dm=jing() dm.static_method() dm.class_method()
''' 类属性''' class Car(): """"最爱奔驰!""" def __init__(self,manufacturer,model,year): self.manufacturer=manufacturer self.model=model self.year=year self.odometer_reading=0 def get_descriptive_name(self): long_name=str(self.year)+" "+self.manufacturer+" "+self.model return long_name.title() def update_obometer(self,mileage): if mileage>=self.odometer_reading: self.odometer_reading=mileage print("这是一个合理的数据!",str(self.odometer_reading)+"千米!") else: print("这是一个不合理的数据!") def increament_odometer(self,miles): self.odometer_reading+=miles def read_obometer(self): print("这是一辆新车,目前仪表显示行程为" + str(self.odometer_reading) + "千米!") my_new_car=Car("Benz","E300L",2016) print(my_new_car.get_descriptive_name()) # my_new_car.odometer_reading=12 my_new_car.update_obometer(15) my_new_car.read_obometer() my_new_car.increament_odometer(2000) my_new_car.read_obometer()