初识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

相关文章
|
3月前
|
Java 程序员 C++
Python 面向对象详解!
本文详细介绍了Python中的面向对象编程(OOP),包括类、对象、继承、封装、多态和抽象等核心概念。通过具体示例,解释了如何使用类定义对象的属性和方法,以及如何通过继承实现代码重用。文章还探讨了封装和多态的重要性,并介绍了私有属性和抽象类的使用方法。最后,总结了OOP的四大支柱:封装、抽象、继承和多态,强调了这些概念在Python编程中的应用。适合Java程序员扩展Python编程知识。
85 2
|
30天前
|
关系型数据库 开发者 Python
Python编程中的面向对象设计原则####
在本文中,我们将探讨Python编程中的面向对象设计原则。面向对象编程(OOP)是一种通过使用“对象”和“类”的概念来组织代码的方法。我们将介绍SOLID原则,包括单一职责原则、开放/封闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。这些原则有助于提高代码的可读性、可维护性和可扩展性。 ####
|
5月前
|
Python
你真的会面向对象吗!解密Python“魔术方法”
你真的会面向对象吗!解密Python“魔术方法”
48 0
|
3月前
|
Python
Python面向对象(2)
【10月更文挑战第14天】
Python面向对象(2)
|
3月前
|
设计模式 程序员 C语言
Python面向对象
【10月更文挑战第13天】
Python面向对象
|
7月前
|
Python
Python进阶第一篇(Python的面向对象)
Python进阶第一篇(Python的面向对象)
|
8月前
|
存储 算法 安全
Python编程实验六:面向对象应用
Python编程实验六:面向对象应用
127 1
|
4月前
|
前端开发 Python
Python编程的面向对象有哪些(二)
Python编程的面向对象(二)—类的多态
30 7
|
4月前
|
IDE Java 开发工具
Python类与面向对象
Python类与面向对象
|
8月前
|
人工智能 自然语言处理 开发者
Python基础教程——面向对象
Python基础教程——面向对象