请教一下:定义类时,类的属性有什么用?

xdwbz888 2017-12-02 02:22:47
class A:
i= 'wzh' #这个类的属性有什么用?

class B:
def __init__(self,name,age):
self.name= name
self.age = age
#类B中,为什么可以不定义类属性??


问题:
1、类A中定义这个i的属性有什么用?一定要定义这个类属性吗?
2、在类B中,为什么又可以不定义类属性?

谢谢各位大侠帮帮我这个小白解释一下,最后简单易懂一点!
...全文
514 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
多难成佛 2018-04-18
  • 打赏
  • 举报
回复
引用 3 楼 lds190 的回复:
类只是一种方遍你调用的抽像模块,并没有严格的“内构要求” 你就是啥也不写,一个空类也是成立的,可以在继承之后再按需求往里面加 具体到你这个,A和B都是对的,一个有属性没方法,一个有方法 没属性,本身就是用来告诉你,类的存在方式可是多种多样。 你要纠结这个,你不如直接去搜索“类 属性 方法” ,度娘上或者各种程序网站都有说明,这是所有程序共有的一种结构模式,并不是py的特有问题。 顺便一提,你要搞不懂这个类,你完全可以不用去纠结类,py里不用类基本上也可以处理很多问题了。 程序的抽像化是一步步提高的,你要用过程就能解决,那就不要纠结别的,你要写着写着觉得有一部分代码需要来回复用,那就提成函数 但函数里也需要用到外面的变量,有时候光抽出函数也不够,那就把函数和这些变量一起打包抽出来装到一个类里。 如果你又有新问题,需要用到这个数,但感觉又不够用,那就继承这个数,再往里面添东西,或者重写方法 抽像是一步步来的,可惜大多数书都是一上来就给你讲一大堆结构化,类……你用不到他自然看不懂。多写多用,到你解决不了问题的时候,自然会想到更进一步的抽像化
最后那句太精辟了,很多时候真的是怎么看都不明白,写着写着,突然觉得每个文件里都放个同样的方法太冗杂,开始想怎么办,然后提纯为函数,最后可能封装成类,这才恍然大悟:是这个意思啊......
xdwbz888 2017-12-04
  • 打赏
  • 举报
回复
引用 3 楼 lds190 的回复:
类只是一种方遍你调用的抽像模块,并没有严格的“内构要求” 你就是啥也不写,一个空类也是成立的,可以在继承之后再按需求往里面加 具体到你这个,A和B都是对的,一个有属性没方法,一个有方法 没属性,本身就是用来告诉你,类的存在方式可是多种多样。 你要纠结这个,你不如直接去搜索“类 属性 方法” ,度娘上或者各种程序网站都有说明,这是所有程序共有的一种结构模式,并不是py的特有问题。 顺便一提,你要搞不懂这个类,你完全可以不用去纠结类,py里不用类基本上也可以处理很多问题了。 程序的抽像化是一步步提高的,你要用过程就能解决,那就不要纠结别的,你要写着写着觉得有一部分代码需要来回复用,那就提成函数 但函数里也需要用到外面的变量,有时候光抽出函数也不够,那就把函数和这些变量一起打包抽出来装到一个类里。 如果你又有新问题,需要用到这个数,但感觉又不够用,那就继承这个数,再往里面添东西,或者重写方法 抽像是一步步来的,可惜大多数书都是一上来就给你讲一大堆结构化,类……你用不到他自然看不懂。多写多用,到你解决不了问题的时候,自然会想到更进一步的抽像化
============================================================= 说得太好了,本来看书看得云里雾里,被你一段话点拨,突然明白了好多,谢谢了,谢谢了
QuantumEnergy 2017-12-03
  • 打赏
  • 举报
回复
这个问题,你应该去看最最基本的python知识,或许你就不会提出这样的问题了
xdwbz888 2017-12-03
  • 打赏
  • 举报
回复
引用 1 楼 ForestDB 的回复:

> cat a.py
class A:
        object_count = 0

        def __init__(self):
                A.object_count += 1

a = A()
print A.object_count
b = A()
print A.object_count
c = A()
print A.object_count

> python a.py
1
2
3
可以或者不可以都只是语法允许的,要或者不要是根据你的需要来的。
==================================================== 没听明白,能不能举个简单例子,要是什么效果,不要是什么效果?这个i到底起什么作用?谢谢了
lds190 2017-12-03
  • 打赏
  • 举报
回复
类只是一种方遍你调用的抽像模块,并没有严格的“内构要求” 你就是啥也不写,一个空类也是成立的,可以在继承之后再按需求往里面加 具体到你这个,A和B都是对的,一个有属性没方法,一个有方法 没属性,本身就是用来告诉你,类的存在方式可是多种多样。 你要纠结这个,你不如直接去搜索“类 属性 方法” ,度娘上或者各种程序网站都有说明,这是所有程序共有的一种结构模式,并不是py的特有问题。 顺便一提,你要搞不懂这个类,你完全可以不用去纠结类,py里不用类基本上也可以处理很多问题了。 程序的抽像化是一步步提高的,你要用过程就能解决,那就不要纠结别的,你要写着写着觉得有一部分代码需要来回复用,那就提成函数 但函数里也需要用到外面的变量,有时候光抽出函数也不够,那就把函数和这些变量一起打包抽出来装到一个类里。 如果你又有新问题,需要用到这个数,但感觉又不够用,那就继承这个数,再往里面添东西,或者重写方法 抽像是一步步来的,可惜大多数书都是一上来就给你讲一大堆结构化,类……你用不到他自然看不懂。多写多用,到你解决不了问题的时候,自然会想到更进一步的抽像化
ForestDB 2017-12-02
  • 打赏
  • 举报
回复

> cat a.py
class A:
        object_count = 0

        def __init__(self):
                A.object_count += 1

a = A()
print A.object_count
b = A()
print A.object_count
c = A()
print A.object_count

> python a.py
1
2
3
可以或者不可以都只是语法允许的,要或者不要是根据你的需要来的。

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧