Ⅰ python中编写一个类,包含一个变量,一个方法;再编写一个子类,继承前一个类
摘要 使用 class 语句来创建一个新类,class 之后为类的名称并以冒号结尾:class ClassName:
Ⅱ python中关于类的问题求解
作业要自己做才能提高水平,只说原理,这个问题,定义长宽高,和计算体积,都不是难点,主要是如何知道实例化数量。
Python的特性是,类的变量,如果是在类里面直接申明,那么就是静态变量,这个类的所有对象都共享共一个变量,用类名来访问。在这个问题中可以用来计数,例如:
classBox:
count=0
def__init__(self,l,w,h):
Box.count+=1
count变量用来统计对象个数,在类的初始化函数__init__中加1,每初始化一个对象就能使统计值加1了。
而在类的函数中申明的self的变量,就是类的成员变量,每个实例化的对象都有一份自己的拷贝,例如
classBox:
count=0
def__init__(self,l,w,h):
Box.count+=1
self.length=l
self.width=w
self.height=h
self.volumn=l*w*h
self.length就是长度,其他的类推,比如要测试并打印出属性
b1=Box()
b1.length
b1.width
b1.height
b1.volumn
我发觉我基本都把这题做完了。。。。
Ⅲ Python的成员函数问题
join() 是str类中的一个成员函数,它是类成员。
2. python中视一切为对象,所以a其实是一个字符串对象,具有成员函数join,可以用dir(a)查看。
3. a.join() 就是字符对象a调用其成员函数 join()
Ⅳ python如何列出类的成员方法,例如下面代码,如何列出m1,m2
import c1
print(dir(c1))#显示c1所有成员和方法
print(dir(c1.m1))#显示m1的方法
print(dir(c1.m2))#显示m2的方法
Ⅳ python数据类型(集合)
1.集合(set)是一个无序不重复元素的序列(意思是有重复的会自动删除,每次打印元素的位置不一定)
2.基本功能是进行成员关系测试和删除重复元素
3.可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典
4.因为set存储的是无序集合,所以我们没法通过索引来访问。访问 set中的某个元素实际上就是判断一个元素是否在set中。
1.创建集合
s=set()#创建一个空集合
s1={1,2,3,'a','python'}
2.删除重复的元素
集合是一个无序不重复元素的序列(意思是有重复的会自动删除,每次打印元素的位置不一定)
3.成员关系测试(检测某个成员是否在集合中)
案例:从终端输入5位数,以空格隔开,把这5位数存入列表中,剔除重复的数据,打印出来
#提示,列表转集合,集合转列表
a=input("请输入5位数字:")
mylist=a.split()
print(mylist)
b=set(mylist)
c=list(b)
print(c)
4.集合常用操作
1.添加元素
2.删除元素
3.删除整个集合
4.获取集合的长度
5.不支持改元素
集合操作-添加元素
格式:
集合.add(元素)
格式:
集合.update(元素)
区别:
add不能添加列表,update可以
update是将字符串中的拆分成字符进行追加
add,是当做整体追加在集合中
#案例:从终端输入一个数字就加入集合中,然后打印,又输入一个数字,然后打印,直到输入-1,退出输入
#然后打印最终的集合
ms=set()
while 1:
a=int(input("请输入一个数字:"))
if a==-1:
break
ms.add(a)
print(ms)
print(ms)
#案例:从终端输入一个字符串就加入集合中,然后打印,又输入一个字符串,然后打印,直到输入q,退出输入
#然后打印最终的集合,字符串要分开存储,如输入hello,存储的列表是{'h','e','l','0'}
ms=set()
while 1:
a=input("请输入一个字符串:")
if a=='q':
break
ms.update(a)
print(ms)
print(ms)
集合操作-删除元素及删除整个集合
格式:
集合.remove(元素) # 元素如果不存在会引发KeyError
集合.discard(元素) # 元素如果不存在不发生任何事
集合.pop() # 集合元素是字符串类型时删除随机元素。 集合元素是其他数据类型时,删除左边第一个元素
del 集合名 #删除整个集合
#案例:有集合{1,2,3,'hello','world'},删除全部字符串,然后最左边第一个元素
a={1,2,3,'hello','world'}
a.discard("hello")
a.discard("world")
a.pop()
print(a)
集合操作-获取集合的长度
格式:
len(集合名)
#案例:有集合{1,2,3,4,'hello','a'},保留1个元素,其他的删除,假如元素个数不确定
s={1,2,3,4,'hello','a'}
for i in range(len(s)-1):
s.pop()
print(s)
集合的集运算
集合的交集,并集,差集,对称差集的运算
{1,2,3,4}交集{4,5,6,7} -->4 交集(&)
{1,2,3,4}并集{4,5,6,7} ->1,2,3,4,5,6,7 并集(|)
{1,2,3,4}差集{4,5,6,7} ->1,2,3 差集(-)
{1,2,3,4}对称差集{4,5,6,7}->1,2,3,5,6,7 4同时出现在两个集合中,不选它 对称差集(^)
#案例:使用花括号和set创建各一个集合,然后对集合进行交、并、差、对称差运算
s={1,2,3,4,5,6}
s1=set([6,7,8,9,10])
print(s&s1)
print(s|s1)
print(s-s1)
print(s^s1)
Ⅵ python的类成员怎么变成实例成员
实例可以直接使用类的成员变量。但是有点要注意的,就是关于类变量和实例变量之间的关系,和可变参数、不可变参数差不多的原理。可以参照下面的例子(python版本2.7),希望可以帮到你:
#encoding:UTF-8
classA(object):
x=100
y=[1,2,3,4]
def__init__(self):
pass
if__name__=="__main__":
a=A()
A.x="test"
printA.x
printa.x
a.x='xyz'
A.x="hello"
printa.x
printA.x
printA.y
printa.y
a.y.append("x")
printa.y
printA.y
输出结果:
Ⅶ 编写Python程序,用于显示人的姓名和年龄
按照题目要求编写的Python程序如下
class Person:
def __init__(self,name,age):
self.__name=name
self.__age=age
def display(self):
print("姓名:{},年龄{}".format(self.__name,self.__age))
if __name__ == '__main__':
p=Person("张三",18)
p.display()
源代码(注意源代码的缩进)
Ⅷ 定义一个学生类,包含学号、姓名、平时成绩和考核成绩四个数据成员和以下成员方法(用Python语言):
花了不少时间写的,挺详细的,希望采纳。
#引入operator模块,用于给集合排序
importoperator
#单行注释用"#",多行注释用'''注释内容'''
#定义一个学生类,类名用驼峰命名法
classStudent:
#构造方法,可用来创建对象格式def__init__(self,参数)参数个数自已定义,类型系统自动识别
def__init__(self,stu_no,name,base_score,exam_score):
self.stu_no=stu_no#对象属性赋值
self.name=name
self.base_score=base_score
self.exam_score=exam_score
#定义计算总评函数定义函数格式def函数名(self,参数),self代表本对象
defget_last_score(self):
#return指定返回值,无return表示此函数无返回值
returnself.base_score*0.3+self.exam_score*0.7
#类似toString方法,打印对象时,调用对象的该方法
def__str__(self):
return'学号:'+self.stu_no+'姓名:'+self.name+",平时成绩:"+str(self.base_score)+",考核成绩:"+str(self.exam_score)
#定义函数,将对象集合写到文件,上面三个函数有缩进,属于Student类的函数,本函数属于全局函数
defprint_to_file(path,stu_arr):
#打开文件,操作完成后自动关闭文件
withopen(path,'w')asfile:
#调用operator给集合排序
sort_attr=operator.attrgetter('stu_no')#指定排序属性
stu_arr.sort(key=sort_attr)#排序
forstuinstu_list:
str=stu.__str__()#将对象转换为字符串
file.write(str+' ')#将字符串写入文件
#主函数,运行的入口
if__name__=='__main__':
#创建几个学生对象,按__init__的顺序输入参数
s1=Student('1001','zhangsan',31,69)
s2=Student('1003','wangwu',28,32)
s3=Student('1004','zhaoliu',77,78)
s4=Student('1002','lisi',19,89)
#创建集合
stu_list=[s1,s2,s3,s4]
#文件路径
f='d:\aaa.txt'
print_to_file(f,stu_list)
Ⅸ python怎么查看object 里的成员变量
首先通过一个例子来看一下本文中可能用到的对象和相关概念。
对于实现了__call__的类实例,这个方法会返回False。如果目的是只要可以直接调用就需要是True的话,不妨使用isinstance(obj, collections.Callable)这种形式。我也不知道为什么Callable会在collections模块中,抱歉!我猜大概是因为collections模块中包含了很多其他的ABC(Abstract Base Class)的缘故吧:)
3.2. 获取对象信息
getmembers(object[, predicate]):这个方法是dir()的扩展版,它会将dir()找到的名字对应的属性一并返回,形如[(name, value), ...]。另外,predicate是一个方法的引用,如果指定,则应当接受value作为参数并返回一个布尔值,如果为False,相应的属性将不会返回。使用is*作为第二个参数可以过滤出指定类型的属性。
getmole(object):还在为第2节中的__mole__属性只返回字符串而遗憾吗?这个方法一定可以满足你,它返回object的定义所在的模块对象。
get{file|sourcefile}(object):获取object的定义所在的模块的文件名|源代码文件名(如果没有则返回None)。用于内建的对象(内建模块、类、函数、方法)上时会抛出TypeError异常。
get{source|sourcelines}(object):获取object的定义的源代码,以字符串|字符串行表返回。代码无法访问时会抛出IOError异常。只能用于