写点什么

Python——静态方法与类方法、类的导入

用户头像
在即
关注
发布于: 1 小时前
Python——静态方法与类方法、类的导入

1.静态方法与类方法


  • Python 中的实例方法由实例调用,且隐含传入的self参数为实例本身。而静态方法在类中定义,无需参数,直接由类调用。类方法由实例调用,传入的参数为类本身,通常用 cls 作为参数名字。本次的任务是让学习者掌握静态方法与类方法的声明与使用

相关知识


  • 静态方法

在声明静态方法的时候,使用函数修饰符 @staticmethod。例如:

class StaticMethood:

@staticmethod

def statictest():

print("这是静态函数")

StaticMethood.statictest()

运行结果为:

这是静态函数


  • 类方法

在声明类方法的时候,使用函数修饰符 @classmethod。例如:

class ClassMethod:

@classmethod

def classtest(cls):

print(cls)

print("这是类方法")

cm = ClassMethod()

cm.classtest()


运行结果为:


<class '__main__.ClassMethod'>

这是类方法


编程要求

函数修饰符部分,将函数声明为相应的类型,具体要求如下:


  1. 填入函数修饰符将 printStatic()方法声明为静态方法;

  2. 填入函数修饰符将 printVersion(cls)方法声明为类方法。

预期输入:

java

Joshua Bloch

1

5

预期输出:

java 的销售价格为 56

100

<class 'BookSell.BookSell'>

预期输入:

python

Julien Danjou

1

78


预期输出:

python 的销售价格为 78

100

<class'BookSell.BookSell'>


代码:


2.类的导入


  • 当我们在写代码时,经常会遇到一种情况:我们要用到的一些功能已经在别的模块里定义过了,如果我们重新写一遍这个功能必然会使得代码冗长且效率低下。于是我们使用导入的方法将其它模块里的功能导入到自己的代码里,让我们在编写代码时能够使用。本次的任务就是让学习者者掌握如何导入类


相关知识

导入整个模块(所有类)

导入整个模块的语句为:

import ModuleName

通常这个模块就是要导入的那个类所在的文件*.py,所以调用类的方法为:

object = ModuleName.ClassName()

object.属性

object.方法


导入整个模块时将这个模块里所有的类都导入了,所以都可以调用。我们在导入时就一定要知道我们需要的这个类或方法属于这个模块。


导入单个或多个类


  • 导入单个或多个类的语句为:

from ModuleName import ClassName1,ClassName2,...


调用类的属性和方法的语句为:


object = ClassName()

object.属性

object.方法


在这种方法中,若导入的类名相同,则后面导入的类将会覆盖前面导入的类。


导入模块中所有的类


  • 导入模块中所有的类的语句为:

from ModuleName import *


调用类的属性和方法的语句为:

object = ClassName()

object.属性

object.方法


在这种方法中,若导入的模块中含有名字相同的类,则类与类之间也会产生覆盖。


编程要求

定义了一个类 DataChange,这个类实现了将八进制转换为十进制然后输出,这个功能由这个类中的 eightToten(self,p)方法实现。


  • 补全导入模块并调用方法实现数制转换功能,具体要求如下:

从 DataChangetest 模块中导入 DataChange 类,并使用该类中的 eightToten(self,p)方法,实现将输入的八进制转换成十进制输出。


预期输入:12

预期输出:10

预期输入:45

预期输出:37


上代码:


//如果注释理解有误,请大佬们多多评论指教!!

发布于: 1 小时前阅读数: 2
用户头像

在即

关注

记录学习进度 2021.02.27 加入

文章基本上都是课上学到的知识结合自己见解进行写作,如有错误,欢迎各位大牛指出。

评论

发布
暂无评论
Python——静态方法与类方法、类的导入