python中的类与对象

python中的类与对象,第1张

概述1.类的创建计算机编程的两种思维主要有两种:一种是面向过程的编程,一种是面向对象的编程。面向过程的思维是按问题解决的过程来编程的,程序比较简单,适用于功能比较单一的情况;而面向对象的思维更接近自然语言,编写比较复杂,但延展性比较强。1.1类的相关概念类是指一个具体的类,

1.类的创建
计算机编程的两种思维主要有两种:一种是面向过程的编程,一种是面向对象的编程。面向过程的思维是按问题解决的过程来编程的,程序比较简单,适用于功能比较单一的情况;而面向对象的思维更接近自然语言,编写比较复杂,但延展性比较强。
1.1 类的相关概念
类是指一个具体的类,比如比格犬,英国蓝猫,而实例是指类中某一个具体的对象,比如忠犬八公就是秋田犬这一个大类中的一个具体的对象;而对象是指类与实例的集合。

1.2 类在代码中的具体实现
可以对类进行具体的属性,以及方法:



class Chinese:    eyes='black'    def action(self):        print('吃饭,用筷子')i_chinese=Chinese()    #类的实例化 print(i_chinese.eyes)  #输入类的属性i_chinese.action()     #实现类的方法

1.3 类的特殊方法
1.3.1 self方法
self会接收实例化过程中传入的数据,当实例对象创建后,实例便会代替 self,在代码中运行。

class Chinese:    name = '吴枫'  # 类属性name    def say(self):     #创建实例后,self中调入person        print(self.name + '是中国人')person = Chinese()   # 创建Chinese的实例personperson.say()         # 调用实例方法

1.3.2 初始化方法
初始化方法的作用在于:当每个实例对象创建时,该方法内的代码无须调用就会自动运行。

class Chinese:    def __init__ (self):   #固定属性的初始化方法        self.mouth = 1  # self.不能丢        self.eye = 2        def body(self):        print('我有%s张嘴巴' % self.mouth)        print('我有%s只眼睛' % self.eye)person = Chinese()person.body()
class Chinese:   #不固定属性的初始化方法    def __init__(self, name, birth, region):        self.name = name   # self.name = '吴枫'         self.birth = birth  # self.birth = '广东'        self.region = region  # self.region = '深圳'    def born(self):        print(self.name + '出生在' + self.birth)    def live(self):        print(self.name + '居住在' + self.region)    person = Chinese('吴枫','广东','深圳') # 传入初始化方法的参数,在创建类时就要传参person.born()person.live()

2.类的继承与定制
2.1 类的继承
类的继承的代码为:class B(A) 即为B继承A,A为B的父类。具体代码如下所示:

# 先阅读代码,再运行代码。class Chinese:    eye = 'black'    def eat(self):        print('吃饭,选择用筷子。')class Cantonese(Chinese):     #类的继承,继承Chinese的属性    pass # pass表示'跳过',不执行其他 *** 作yewen = Cantonese()print(yewen.eye)yewen.eat()

函数isinstance(),可以用来判断某个实例是否属于某个类。

# 阅读代码和注释,直接运行print(isinstance(1,int))# 判断1是否为整数类的实例print(isinstance(1,str))print(isinstance(1,(int,str)))# 判断实例是否属于元组里几个类中的一个

2.1.1 类的多重继承
一个类,可以同时继承多个类,语法为class A(B,C,D):。和子类更相关的父类会放在更左侧。所以当创建的实例调用属性和方法会优先级是从左到右。

class C0:    name = 'C0'class C2(C0):    num = 2class C1:    num = 1class C3:    name = 'C3'class C4(C1,C2,C3):    passins = C4()print(ins.name) # 打印出C0print(ins.num) # 打印出1

2.2 类的定制
子类也可以在继承的基础上进行个性化的定制,包括:
2.2.1 创建新属性、新方法

class Chinese:    eye = 'black'    def eat(self):        print('吃饭,选择用筷子。')class Cantonese(Chinese):  # 类的继承    native_place = 'guangdong'  # 类的定制    def dialect(self):  # 类的定制        print('我们会讲广东话。')yewen = Cantonese()print(yewen.eye)# 父类的属性能用print(yewen.native_place)# 子类的定制属性也能用yewen.eat()# 父类的方法能用yewen.dialect()# 子类的定制方法也能用

2.2.2 修改继承到的属性或方法
2.2.2.1 直接对属性或者方法进行改写

class Chinese:    def land_area(self,area):        print('我们居住的地方,陆地面积是%d万平方公里左右。'% area)class Cantonese(Chinese):    # 直接对方法进行重写    def land_area(self,area):        print('我们居住的地方,陆地面积是%d万平方公里左右。'% int(area *0.0188))

2.2.2.2 间接对父类的属性或者方法进行改写

class Chinese:    def land_area(self,area):        print('我们居住的地方,陆地面积是%d万平方公里左右。'% area)class Cantonese(Chinese):    # 间接对方法进行重写    def land_area(self, area, rate = 0.0188):        Chinese.land_area(self, area * rate)        # 直接继承父类方法,再调整参数。gonger = Chinese()yewen = Cantonese()gonger.land_area(960)yewen.land_area(960)
总结

以上是内存溢出为你收集整理的python中的类与对象全部内容,希望文章能够帮你解决python中的类与对象所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1186421.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存