也许这更像是一个样式问题,而不是技术问题,但我有一个带有几个成员变量的python类,我想让它工作,以便在用户首次创建类的实例时初始化一些成员变量(即在__init__函数中)我希望从稍后将调用的成员函数的参数定义其他成员变量.所以我的问题是我应该初始化__init__函数中的所有成员变量(并将稍后定义的变量设置为虚拟值)或者在__init__函数中初始化一些变量,在稍后的函数中初始化一些变量.我意识到这可能很难理解,所以这里有几个例子.

此示例最初在__init__函数中将var3设置为0,然后在my_funct函数中将其设置为所需的值.

class myClass(object):

def __init__(self,var1,var2):

self.var1=var1

self.var2=var2

self.var3=0

def my_funct(self,var3):

self.var3=var3

在这个例子中,__ init__函数中根本没有定义var3

class myClass(object):

def __init__(self,var1,var2):

self.var1=var1

self.var2=var2

def my_funct(self,var3):

self.var3=var3

我不认为任何一种方式都会产生很大的不同(可能在内存使用方面略有不同).但我想知道其中一个是否因为某些原因而优先于另一个.

解决方法:

在面向对象的编程中,开发人员应确保在实例化之后和方法完成之后对象始终处于一致状态.除此之外,您可以根据自己的意愿自由开发课程(请记住子类化/覆盖等的某些原则).

当您在__init__之外设置实例变量时,诸如Pylint之类的工具将发出警告.可以说,在__init__中设置所有实例变量都比较清晰,但这并不是必须始终遵守的规则.

标签:python,oop,instance-variables

来源: https://codeday.me/bug/20190930/1835236.html

python实例变量初始化_Python – 应该在__init__中初始化所有成员变量相关推荐

  1. 在python语言中定义私有成员变量的方法是_Python在类中有“私有”变量吗?

    回答(11) 2 years ago python中的私有变量或多或少是一个hack:解释器故意重命名变量 . class A: def __init__(self): self.__var = 12 ...

  2. python请输入星期几的第一个字母来判断_【Python 实例】面向对象 | 请输入一周中某天的名称的第一个字母来判断以下是星期几,如果第一个字母一样则继续判断第二个字母...

    [Python 实例]面向对象 | 请输入一周中某天的名称的第一个字母来判断以下是星期几,如果第一个字母一样则继续判断第二个字母 题目: 请输入一周中某天的名称的第一个字母来判断以下是星期几,如果第一 ...

  3. C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法

    <p style="line-height: 19px; margin: 10px auto; color: rgb(75, 75, 75); font-family: Verdana ...

  4. C++笔记之结构体内对vector初始化,一般初始化,和类内私有vector类型成员变量初始化

    C++笔记之结构体内对vector初始化,一般初始化,和类内私有vector类型成员变量初始化 文章目录 C++笔记之结构体内对vector初始化,一般初始化,和类内私有vector类型成员变量初始化 ...

  5. C++中的static 成员变量的一些注意点

    C++中的static成员变量主要用来为多个对象共享数据 例: #include <iostream> using namespace std; class Student{ public ...

  6. java变量同名_浅析Java中局部变量与成员变量同名解决技巧

    要想区分这哥俩,首先,我们得知道它们分别是什么.先从成员变量下刀. 成员变量 我们来研究一个事物: 属性:外在特征:例如人的身高,体重 行为:能够做什么:例如人有说话,打球等行为. 而在Java语言中 ...

  7. java中局部变量和成员变量

    java中局部变量和成员变量 1. 定义的位置不一样 局部变量:在方法的内部 成员变量:在方法的外部,直接写在类当中 2. 作业范围不一样 局部变量:只有方法当中才能使用,出了方法就不能再用 成员变量 ...

  8. 类的成员变量 猜数字游戏一个类A有一个成员变量v有一个初值100。 * 定义一个类对A类的成员变量v进行猜。 * 如果大了则提示大了小了则提示小了。等于则提示猜测成功。

    /** 类的成员变量 猜数字游戏一个类A有一个成员变量v有一个初值100.* 定义一个类对A类的成员变量v进行猜.* 如果大了则提示大了小了则提示小了.等于则提示猜测成功.*/ import java ...

  9. java什么是局部变量_java局部变量是什么意思?Java中局部变量与成员变量有哪些区别?...

    大家知道Java中的局部变量吗?今天我们要了解的Java的局部变量及它和成员变量的区别,一起来看看吧. 什么是局部变量? 局部变量时就是只有一部分可见的变量,例如定义在方法中的变量,只有这百个方法才能 ...

最新文章

  1. 分割catalina.out 每天生成一个文件
  2. 面试官问:服务的心跳机制与断线重连,Netty底层是怎么实现的?懵了
  3. java的静态内部类
  4. 没有统计学基础可以学python-机器学习和Python怎样快速掌握?你一定需要这27张清单...
  5. python request-python3的request用法实例
  6. Angry Birds Rio 攻略 1-1
  7. mysql 指定目录_mysql 更改默认数据目录
  8. cocos2d-x初探学习笔记(7)--CCProgressTimer
  9. leetcode 202. 快乐数 思考分析(哈希集合与双指针解)
  10. ram自己写?用IP?
  11. 复函数图像怎么画_matlab复变函数画图形
  12. 关于matlab的问题,关于MATLAB的一些基础问题
  13. 如何在服务器中安装mysql 以及安装禅道
  14. STL 标准容器的选择
  15. Android 网络服务类提供的服务接口
  16. Rayman的绝顶之路——Leetcode每日一题打卡13
  17. php计算1000000以内的质数,1000000以内质数表
  18. APP性能测试——内存测试
  19. 云服务器修复漏洞用重启吗,漏洞修复后要重启吗
  20. linux pvs命令安装,使用linux的pvs命令格式化输出物理卷信息报表

热门文章

  1. android 增删改查 源码_学生信息增删改查小程序案例(springboot服务端)
  2. 【动态库链接】python调用C
  3. 转载:left join和left semi join的联系和区别
  4. 【Linux】Linux与Windows的部分不同
  5. jdbc链接数据库mysql
  6. Yahoo!的网站项目工作流程
  7. struct 与 class区别
  8. UA OPTI501 电磁波8 麦克斯韦方程边界条件的推导
  9. .net加密解密学习总结
  10. 深入探究 Win32 PE 文件格式