Python学习笔记类

创建类

class Person:
    def __init__(self,name,age):
        self.name=name
        self.age=age

    def self_introduction(self):
        print(f'大家好,我叫{self.name},今年{self.age}岁')

方法__init__()

init()时一个特殊的方法,每当根据类创建新实例时,Python都会自动运行它。并且__init__()类中形参self必不可少,而且必须位于其他形参的前面。

self

以self为前缀的变量可供类中的所有方法使用,可以通过类的任何实例来访问。可以通过实例访问的变量称为属性。

访问属性
class Person:
    def __init__(self,name,age):
        self.name=name
        self.age=age

    def self_introduction(self):
        print(f'大家好,我叫{self.name},今年{self.age}岁')

p1 = Person('张三',18)
print(f'{p1.name} {p1.age}')

Python创建一个属性时,默认值为0.
输出

调用方法
class Person:
    def __init__(self,name,age):
        self.name=name
        self.age=age

    def self_introduction(self):
        print(f'大家好,我叫{self.name},今年{self.age}岁')

p1 = Person('张三',18)
p1.self_introduction()

输出

继承

一个类继承另一个类时,将自动获得另一个类的所有属性和方法。原来的类称为父类,新的类称为子类。子类继承了父类所有的属性和方法,同时还可以定义自己的属性和方法。

class Person:
    def __init__(self,name,age):
        self.name=name
        self.age=age

    def self_introduction(self):
        print(f'大家好,我叫{self.name},今年{self.age}岁')

    def work_name(self):
        print(self.work)
class Man(Person):
    def __init__(self,name,age,work):
        super().__init__(name,age)
        self.work=work
m1 = Man('张三',20,'程序猿')
m1.self_introduction()
m1.work_name()

输出

子类的方法__init__()

创建子类时,父类必须包含在当前文件中,且在子类的前面。定义子类时应该在子类的括号中指定父类的名称。
super()是一个特殊的函数,能够让你调用父类的方法。

重写父类中的方法

class Person:
    def __init__(self,name,age):
        self.name=name
        self.age=age

    def self_introduction(self):
        print(f'大家好,我叫{self.name},今年{self.age}岁')

    def work_name(self):
        print(self.work)
class Man(Person):
    def __init__(self,name,age,work):
        super().__init__(name,age)
        self.work=work

    def self_introduction(self):
        print(f'大家好,我叫{self.name},今年{self.age}岁,我的工作是{self.work}')

m1 = Man('张三',20,'程序猿')
m1.self_introduction()

输出

将实例作属性

class Person:
    def __init__(self,name,age):
        self.name=name
        self.age=age

    def self_introduction(self):
        print(f'大家好,我叫{self.name},今年{self.age}岁')

    def work_name(self):
        print(self.work)

class work:
    def __init__(self,work_name='程序猿'):
        self.work_name=work_name

    def describe_work(self):
        print(f'工作是{self.work_name}')

class Man(Person):
    def __init__(self,name,age):
        super().__init__(name,age)
        self.work=work()

    def self_introduction(self):
        print(f'大家好,我叫{self.name},今年{self.age}岁')

m1 = Man('张三',20)
m1.self_introduction()
m1.work.describe_work()

输出

class Person:
    def __init__(self,name,age):
        self.name=name
        self.age=age

    def self_introduction(self):
        print(f'大家好,我叫{self.name},今年{self.age}岁')

    def work_name(self):
        print(self.work)

class work:
    def __init__(self,work_name,salary):
        self.work_name=work_name
        self.salary=salary

    def describe_work(self):
        print(f'工作是{self.work_name},工资是{self.salary}')

class Man(Person):
    def __init__(self,name,age,work_name,salary):
        super().__init__(name,age)
        self.work=work(work_name,salary)

    def self_introduction(self):
        self.work.describe_work()
        print(f'大家好,我叫{self.name},今年{self.age}岁')

m1 = Man('张三',20,'程序猿',10000)
m1.self_introduction()
m1.work.describe_work()

输出

导入类

为了使代码更加的整洁,允许类储存在模块中,然后在主程序中导入所需的模块。

导入单个类

#person.py
class Person:
    def __init__(self,name,age):
        self.name=name
        self.age=age

    def self_introduction(self):
        print(f'大家好,我叫{self.name},今年{self.age}岁')

    def work_name(self):
        print(self.work)
from person import Person
p1 = Person('张三',20)
p1.self_introduction()

输出

从一个模块导入多个类

#person.py
class Person:
    def __init__(self,name,age):
        self.name=name
        self.age=age

    def self_introduction(self):
        print(f'大家好,我叫{self.name},今年{self.age}岁')

    def work_name(self):
        print(self.work)

class work:
    def __init__(self,work_name,salary):
        self.work_name=work_name
        self.salary=salary

    def describe_work(self):
        print(f'工作是{self.work_name},工资是{self.salary}')

class Man(Person):
    def __init__(self,name,age,work_name,salary):
        super().__init__(name,age)
        self.work=work(work_name,salary)

    def self_introduction(self):
        self.work.describe_work()
        print(f'大家好,我叫{self.name},今年{self.age}岁')

from person import Person,Man
p1 = Person('张三',20)
p1.self_introduction()
print()
m1 = Man('李四',20,'程序猿',10000)
m1.self_introduction()

s输出

导入模块中的所有类

语法:from module_name import *。
这些导入类和导入函数十分类似。
在模块中还可以导入另一个模块。

使用别名

当要创建大量实例时,使用别名可以简化代码,别名的使用和函数别名的使用类似。

Python标准库

Python标准库是一组模块,安装的Python包含了它,我们可以使用标准库中的任何函数和类,只需要在开头用import语句 。

randint()

from random import randint
print(randint(1,6))

输出
randint(a,b)是随机返回一个在a,b中的正数,包括a,b。
虽然很多情况中是左闭右开,但是randint()中是左右都闭。

choice()

from random import choice
number=list(range(10))
print(choice(number))

choice()是将列表或元组作为参数,并随机返回其中的一个元素。

类编写风格

类名一个采用驼峰命名法,即类名中每个单词的首字母都大写,而不使用下划线。实例名和模块名都用小写,并使用下划线。
每个类都应该在 类定义后包含一个文档字符串。简单的描述类的作用。
一个空行分隔方法;模块中用两个空行分隔类。
当需要同时导入标准库中的模块时,应该先导入标准库中的模块,然后用一行空行,再导入自己的模块。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值