初识Python之面向对象篇(上)

简介: 初识Python之面向对象篇

前言

hello,各位小伙伴,好久不见,前段时间由于事情繁多,这个面向对象的语法比较的重要,而且有一些小难度,所以小王就没有定期分享文章了,正所谓“一心一意才可以做好每一件事情”,希望大家在学习的时候也要这样哟。

Python本来就是一门简单的编程语言,但是大家也要有好的学习方法和态度哟,这样才可以真正的学懂这一门语言!希望大家在自己空闲的时间可以多去涉猎一些自己专业方面的知识,所谓天道酬勤。唯有不断的修炼自己,才能提高自己幸运值。

话不多说!我们开始学习吧!!!


面向对象的知识概念

类对象

class Myclass:
    '''这是一个类'''
    i=123456
    def f(self):
        return "hello python"
x=Myclass()#实例化类,和函数调用类似
print(x.i)
print(x.f())

image.png

 # '''类方法'''
class Smplclass:
    def info(self):
        print("这是我的类!")
    def sum(self,x,y):
        return x*y
se=Smplclass()
print(se.sum(10,12))
se.info()

image.png

# '''构造方法'''
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)

image.png

'''调用类自身的方法和全局函数'''
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)

image.png


'''模拟狗狗的日常'''
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()

image.png


'''析构方法'''
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!")

image.png

'''静态方法和类方法'''
'''静态方法没有隐含调用参数,应该使用@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()

image.png

''' 类属性'''
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()

image.png

相关文章
|
1月前
|
Python
python-面向对象
python-面向对象
15 2
|
5月前
|
Python
74 python - 打飞机案例(显示控制玩具飞机-面向对象)
74 python - 打飞机案例(显示控制玩具飞机-面向对象)
32 0
|
1月前
|
Java 程序员 数据安全/隐私保护
Python教程第6章 | Python面向对象
Python面向对象概念、类的定义和调用、类方法、修改和增加类属性、类和对象、初始化函数、类的继承、类的多态、类的访问控制
44 0
|
1月前
|
Python
|
2月前
|
机器学习/深度学习 人工智能 IDE
Python是一种高级、解释型、交互式和面向对象的脚本语言
Python是一种高级、解释型、交互式和面向对象的脚本语言
25 2
|
3月前
|
Python
【Python30天速成计划】6. 面向对象的继承和多态
【Python30天速成计划】6. 面向对象的继承和多态
|
3月前
|
Python
python 面向对象之继承
python 面向对象之继承
|
3月前
|
Python
Python基础学习 -- 面向对象
Python基础学习 -- 面向对象
18 0
|
3月前
python-pathlib模块使用 --- 面向对象的文件系统路径
python-pathlib模块使用 --- 面向对象的文件系统路径
20 0
|
3月前
|
算法 Python 容器
Python之变量命名、运算符和面向对象
【1月更文挑战第1天】 1、注释 注释分为单行注释和多行注释两种,单行注释用#表示,多行注释用(三个双引号"“”“”")或‘(三个单引号’‘’‘’')表示。如下所示:
102 2
Python之变量命名、运算符和面向对象

热门文章

最新文章