python类名
Ⅰ python 中的包、模块、类具体、方法名。package,,,,,
说模块太遥远了。
来个简单的。
新建一个python文件func.py
内容如下
def myprint(x):
print x
再新建一个python文件1.py
内容如下:
import func
func.myprint("ok")
1.py这个文件 import 了func这个文件,然后通过func.myprint调用了func中的函数
Ⅱ python中如何定义类
一、类定义:
class <类名>:
<语句>
类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性
如果直接使用类名修改其属性,那么将直接影响到已经实例化的对象
类的私有属性:
__private_attrs两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问
在类内部的方法中使用时self.__private_attrs
类的方法
在类地内部,使用def关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数self,且为第一个参数
私有的类方法
__private_method两个下划线开头,声明该方法为私有方法,不能在类地外部调用
在类的内部调用slef.__private_methods
类的专有方法:
__init__构造函数,在生成对象时调用
__del__析构函数,释放对象时使用
__repr__打印,转换
__setitem__按照索引赋值
__getitem__按照索引获取值
__len__获得长度
__cmp__比较运算
__call__函数调用
__add__加运算
__sub__减运算
__mul__乘运算
__div__除运算
__mod__求余运算
__pow__称方
示例:
[python]view plain
#类定义
classpeople:
Ⅲ python 报错 类名没有被定义
python引用xxx.py文件如果使用语句"import xxx",那么对于此文件中的a类,要用xxx.a表示。如果想直接使用,需要用"from xxx import a"特别引用xxx模块中的a类,或者"from xxx import *"引用xxx模块中一切可被引用的东西。
比如你这里要写成 b = czhhbp.OthelloState(),或者用from导入法省略模块名
Ⅳ python创建一个和类名相同名字的方法,代码如下;
绑定方法(即类似于java的成员方法),TEXT.TEXT,后面是对象地址。
你应该调用:
a.TEXT(),而不是像你这样写
Ⅳ python设计一个名为point的类
classPoint(object):
def__init__(self,x=0,y=0):
self._x=x
self._y=y
@property
defx(self):
returnself._x
@x.setter
defx(self,value):
self._x=value
@property
defy(self):
returnself._y
@y.setter
defy(self,value):
self._y=value
defdistance(p1,p2):
return((p1.x-p2.x)**2+(p1.y-p2.y)**2)**0.5
defisnearby(self,p):
return((self.x-p2.x)**2+(self.y-p2.y)**2)**0.5
def__str__(self):
return'('+str(self.x)+','+str(self.y)+')'
#测试
p1=Point()#不写x,y默认为
print(str(p1))
print(p1.x,p1.y)
p1.x=3
p1.y=4
print(str(p1))
p2=Point(4,5)
print(Point.distance(p1,p2))#p1,p2两点间距离
print(p1.isnearby(p2))#p1到p2的距离
Ⅵ python 类的定义
首先初始化时确定是否接收一个parent参数(这个参数名没什么意义,想怎么取怎么取)
如果没有在这个Icon类初始化的时候同时给参数,那么parent就为None,因为继承了QtGui.QWidget类,所以在初始化的时候,先调用QtGui.QWidget.__init__(self, parent)这个QtGui.QWidget的初始化方法,这个parent参数是QtGui.QWidget需要的吧
Ⅶ 测试人员学python时,应该如何区分函数的类名和方法
1. 相同点复: 都是封装代码的整体, 都是实制现某个功能的小工具
2. 不同点:
① 定义的位置不同
函数定义在类的外部
方法定义在类的内部
② 参数不同
函数没有self参数
方法有self参数
③ 调用的方式不同
函数名(参数)
对象名.方法名(参数)
在传智播客学python时期也遇到过这个问题。后来就解决了。
Ⅷ Python 的类的下划线命名有什么不同
首先是单下划线开头,这个被常用于模块中,在一个模块中以单下划线开头的变量和函数被默认当作内部函数,如果使用 from a_mole
import * 导入时,这部分变量和函数不会被导入。不过值得注意的是,如果使用 import a_mole 这样导入模块,仍然可以用
a_mole._some_var 这样的形式访问到这样的对象。
在 Python
的官方推荐的代码样式中,还有一种单下划线结尾的样式,这在解析时并没有特别的含义,但通常用于和 Python
关键词区分开来,比如如果我们需要一个变量叫做 class,但 class 是 Python 的关键词,就可以以单下划线结尾写作 class_。
双
下划线开头的命名形式在 Python 的类成员中使用表示名字改编 (Name Mangling),即如果有一 Test 类里有一成员
__x,那么 dir(Test) 时会看到 _Test__x 而非
__x。这是为了避免该成员的名称与子类中的名称冲突。但要注意这要求该名称末尾没有下划线。
双下划线开头双下划线结尾的是一些
Python 的“魔术”对象,如类成员的 __init__、__del__、__add__、__getitem__ 等,以及全局的
__file__、__name__ 等。 Python 官方推荐永远不要将这样的命名方式应用于自己的变量或函数,而是按照文档说明来使用。
另外单下划线开头还有一种一般不会用到的情况在于使用一个 C 编写的扩展库有时会用下划线开头命名,然后使用一个去掉下划线的 Python 模块进行包装。如 struct 这个模块实际上是 C 模块 _struct 的一个 Python 包装。
更多关于命名的内容可以参考 PEP 8 《代码风格指南》的 Name Conventions 一节:http://www.python.org/dev/peps/pep-0008/
需要说明的是,由于这份文档看起来经过多次修改,双下划线开头的用法似乎曾经如 @makestory 所说,建议为类的私有成员,至少啄木鸟社区的 PEP 8 译文是这样写的,但 PEP 8 当前的官方版本中并没有体现。