python的入门——类class

类,描述相同属性和方法的对象的集合,对象是类的实例
(理解,类就是很多个对象,对象就是类中的一个例子)

属性:通用属性
方法:通用函数

方法:
类中函数第一个参数必须是self,类中的函数叫方法!
其中self的含义就是指具体某一个对象

常见第一个方法为初始化,当然也可以不初始化

属性:
描述对象的内容,由类共同定义,比如name属性

class animal:
def init(self, name, max_age):
self.name = name
self.class_name = “animal”
self.max_age = max_age

dog = animal(“dog”, 18)

print(dog.name)
print(dog.class_name)
print(dog.max_age)

第一大特性:封装

A.将对象的信息封装到由类定义的属性中

这样每个对象都有封装的属性信息啦!而普通函数就做不到这样清晰明确的每个对象都有一些通用属性可以输出!

比如将对象dog的属性信息age = 18封装到对象的属性中

B.将封装的信息从类的属性中调用出来

第一种方法,当然直接从对象中输出属性信息

第二种方法,类中定义一个方法,可以直接输出当前对象的属性,对象调用类方法

第二大特性:继承

继承就没有封装那么简单啦,是指两个类之间的关系

继承-一个类继承另一个类定义的属性和方法

目的:不用重复定义多个类的属性和方法啦

子类继承了父类的方法和属性定义,就是就是可以用这些方法和属性啦
但如果父类需要接受的属性,目前还不知道子类的对象如何传送给父类

class animal:
def init(self, max_age):
self.class_name = “animal”
self.max_age = max_age

def drink(self):
    print('drink by %s' % self.name)

class dog(animal):
def init(self, name):
self.name = name

dog_a = dog(“a”)

dog_a.drink()
print(dog_a.max_age)

更复杂的问题:多个类的处理

A.是否可以继承多个类

明确的一点是:python可以继承多个类,而java和C#不能(python最好!)

B.如果多个类中的函数相同,会使用哪一个函数

经典类多继承时,使用深度
新式类多继承时,使用广度

每次找到就立即停止,可以说解决冲突的方法比较贪婪,哈哈

判断经典和新式判断当前或者父类是否为object类
(疑问,那么父类一个是object,一个是经典,是否也当成object来计算呢)

class C:经典
class D(C):经典

class C(object):新式
classs D(C):新式

第三大特性,多态

多态即,可以使用不同类中的方法

那么定义函数为接收一个类
调用这个类的方法

如果接收的是一个子类,就使用子类的方法

接收不同子类,使用方法不同

class animal:
pass

class dog(animal):
def drink(self):
print (‘drink by dog’)

class cat(animal):
def drink(self):
print (‘drink by cat’)

def Func(animal):
animal.drink()

dog1 = dog()
cat2 = cat()
Func(dog1)
Func(cat2)

通过函数定义接收父类,使用父类的方法
实际接收子类,使用子类的方法
因为子类不同,实现了父类的多态

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中,class是定义类的关键字。类是一种自定义的数据类型,用于创建对象。通过定义类,我们可以创建具有特定属性和方法的对象。类定义了对象的行为和状态,可以理解为对象的模板。 引用提到了Python中关于类的初步内容,包括类的属性和方法等。类的属性是定义在类中的变量,可以通过类名访问,不需要创建对象。而类的方法是定义在类中的函数,可以通过对象或者类名调用。 引用介绍了类方法,在类方法中,至少要接受一个形参cls,但调用时不需要为cls传递值。类方法可以访问类属性,即在类中直接定义的变量。 总结来说,Python中的class关键字用于定义类,类可以有属性和方法。属性可以是类属性或实例属性,方法可以是实例方法或类方法。类是创建对象的模板,通过类可以创建具有特定属性和方法的对象。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【PythonPython入门第五课——类(Class)初步](https://blog.csdn.net/GalaxyerKw/article/details/117198771)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值