python学习笔记——类

1. 创建类和类变量

01-创建类以及类变量_哔哩哔哩_bilibili

class Person:
    name="xiaoming" # 类变量
#定义方法
    def say_hello(self):
         print(f'hello {Person.name}')

if __name__=='__main__':
     #1.访问类变量
     print(Person.name)
     #2.访问类中定义的方法
     #实例化类
     p = Person()
     p.say_hello()

在类的内外部获取类变量值,直接使用[名].[变量名] 即可获取。

在类的外部调用方法,需要先实例化类,再使用[实例化对象名].[方法名] 获取。

实例化以后 ,也可以通过[实例化对象名].[变量名]获取变量值。

1.1 变量值的修改

02-使用构造器创建实例变量_哔哩哔哩_bilibili

注意两种修改方式,对值的影响。

1)修改实例化后的变量值,只会改变该实例化的值——其他实例化的类对象中的值不改变。

的返回为

2)直接对[名].[变量名]改变变量值会从本质上改变这个类变量,换句话说,会对之后所有访问这个类变量的实例也做修改。(全局修改)

的返回为

 构造器:__int__ 这个特殊的方法就叫做构造器

self 就叫做实例变量,self都指向实例化过程中自定义的那个对象。

class Person:
    def __init__(self,name):  #构造器
        self.username =  name # 可以无限定义实例变量,可以通过参数传入
        self.age =  10        # 可以无限定义实例变量,可以写死


    def say_hello(self):
        print(f'hello {self.username}') #调用时使用self.[变量名]

if __name__=='__main__':
    p1=Person('张三')
    p1.say_hello()
    #看个意思,这段代码跑不了,因为中英文符号问题。

3. 类变量和实例变量的区别

03-类变量与实例变量的区别_哔哩哔哩_bilibili

 self.up的写法:表示获得的是在不同的实例下给定的up的值。

 Employee.up 的写法:写死了,固定取这个类下定义的up的值,0.1。

两种写法的区别体现在:

这样写的时候,第一种写法实际乘0.2,第二种写法实际乘0.1。

4. 类的继承

04-类的继承_哔哩哔哩_bilibili

1) 继承的例子1:

在创建类的时候,把父类的类名写在括号里,就可以继承父类的所有的方法——像调用父类的方法那样,调用实例化以后的子类里的方法。甚至可以在子类里面啥都不写,也ok。但父类规定的传参规则,实例化子类时需要满足。比如例子中,实例化Dog时也需要传两个参数name和legs进去。

 2)继承的例子2:

 

 返回:

 注意:如果子类和父类中的方法名字重复了,子类会覆盖掉父类方法——调用子类时,只有子类的方法生效。

 5.  类的私有变量

05-类的私有变量和私有方法_哔哩哔哩_bilvv

1)私有变量

在变量名前面加两个下划线,表示私有变量,不可继承到子类去。

或者说,子类访问不到父类里面的私有变量,只能在父类内部进行使用。

2)私有方法

同理,方法名前面加两个下划线可以表示私有方法,只有类内部可以调用,不可以继承。起到保护作用。

class 类名(object):
    def __方法名(self):
        方法体

 

5. 类的属性方法

06-类的属性方法_哔哩哔哩_bilibili

在方法上一行写一个@property的装饰器,就可以像访问属性那样([类名].[属性名])去调用方法([类名].[方法名]())

 

注意:

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值