Python基础-类

类定义,属性和初始化

一、面向过程编程

程序都是从上往下执行

tu = ('原擎', 28, 180)
di = {'name': '靳莉', 'age': 25, 'heighe': 150}
tu1 = tuple(di.values())
print(tu1)
di1 = dict(zip(di.keys(), tu)) 
print(di1)

这样写缺点代码量非常大

二、函数式编程

代码可以复用随时可调用

def f(a, b):
    tu1 = tuple(b.values())
    di1 = dict(zip(b.keys(), a))
    res = tu1, di1
    return res
y = f(tu, di)
print(y)

三、面向对象编程

类:抽象的模板,比如猫类 共性

实例:根据类创建出来的一个个具体的对象 ,拥有相同的标志,但是各自的数据不同。 个性


# 类的定义
class Cat:  # 大驼峰命名法:首字母大写
    """
    用来解释
    """
# class  关键字

# 实例化对象
kitty = Cat()
hua = Cat()
# 属性:color,eat就是我们kitty和hua对象的属性
# 通过据点法给实例赋值
kitty.color = "white"    #实例属性
kitty.eat = "milk"
hua.color = "colorful"
hua.eat = "fish"

1、实例属性:记录的是每一个实例的特征

class Cat:
    """这是一个猫类"""
    def __init__(self, color, eat):
        self.color = color    #实例对象
        self.eat = eat
        

kitty = Cat('white', 'milk')
hua = Cat('colorful', 'fish')
print(kitty.color)            #white

2、类属性:记录的是与类相关的特征

class Cat:
    """这是一个猫类"""
    count = 0

    def __init__(self, color, eat):
        self.color = color      # 实例属性
        self.eat = eat
        Cat.count += 1    # 类名.类属性名,内部调用
kitty = Cat('white', 'milk')
hua = Cat('colorful', 'fish')
lucky = Cat('black', 'food')

# 类属性外部调用
print("我现在创建了{}只猫".format(Cat.count))  # 外部调用1:类名.属性名
print(kitty.count)  # 外部调用2:实例名.类属性名
print(kitty.color)  # 实例调用实例属性
# print(Cat.color)    # 类不能调用实例属性

实例可以访问实例属性,实例可以访问类属性

类只能访问类属性

3、私有属性

  • 单下划线开头:告诉别人这是私有属性,依然可以使用

  • 双下划线开头:外部不能使用

class Cat:

    def __init__(self, color, eat, age):
        self.color = color
        self._eat = eat
        self.__age = age


kitty = Cat("white", "milk", 5)
print(kitty.color)
print(kitty._eat)
print(kitty.__age)  # 会报错

4、方法
方法就是和某个特定的类相关的函数

  • 函数转为方法
class Cat:
    """这是一个猫类"""
    def __init__(self, name, color, eat):
        self.name = name
        self.color = color
        self.eat = eat

    def add_cat(self):
        print("{}-{}-{}".format(self.name, self.color, self.eat))


kitty = Cat("kitty", "white", "milk")
Cat.add_cat(kitty)
kitty.add_cat()
  • 私有方法:不可以被实例和类直接调用但是可以通过内部方法来操作
class Cat:
    """这是一个猫类"""
    def __init__(self, name, color, eat):
        self.name = name
        self.color = color
        self.eat = eat
        
    def __print_cat(self):
        return "我是私有方法"
    
    def add_cat(self):
        print("{}-{}-{}".format(self.name, self.color, self.eat))
        print(self.__print_cat())


kitty = Cat("kitty", "white", "milk")

Cat.add_cat(kitty)
kitty.add_cat()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值