python关于class的问题
importrandomclassCoin(object):def__init__(self):self._sideup="head"defget_sideup():re...
import random
class Coin(object):
def __init__(self):
self._sideup="head"
def get_sideup():
return self._sideup
def toss():
r=random.randint(2)
if r==1:
self._sideup="head"
else:
self._sideup="tail"
c1=Coin()
c1.toss()
print(c1.get_sideup)
count=0
for x in range(10):
c1.toss()
if c1.self._sideup()=="head":
count+=1
print(count)
为什么说TypeError: toss() takes 0 positional arguments but 1 was given 展开
class Coin(object):
def __init__(self):
self._sideup="head"
def get_sideup():
return self._sideup
def toss():
r=random.randint(2)
if r==1:
self._sideup="head"
else:
self._sideup="tail"
c1=Coin()
c1.toss()
print(c1.get_sideup)
count=0
for x in range(10):
c1.toss()
if c1.self._sideup()=="head":
count+=1
print(count)
为什么说TypeError: toss() takes 0 positional arguments but 1 was given 展开
展开全部
对象构造后第一个调用的函数,在python里面实例的属性是可以动态构建的,在类里面定义的属性是类属性,不是实例属性,定义实例自己的属性的最好地方是__init__函数里面。
比如
class TEST():
class_attr #类属性,通过TEST.class_attr调用,如果用instance.class_attr调用实际上是声明类另一个实例属性,与之前的TEST.class_attr不是一个东西了
def __init__(self,other):
self.class_attr #实例属性,与之前的那个属性处于不同的名字空间了,不是一个东西。
self.other=other
总之,__init__可以用来声明实例属性,以及进行必要的初始化。
希望能解决您的问题。
比如
class TEST():
class_attr #类属性,通过TEST.class_attr调用,如果用instance.class_attr调用实际上是声明类另一个实例属性,与之前的TEST.class_attr不是一个东西了
def __init__(self,other):
self.class_attr #实例属性,与之前的那个属性处于不同的名字空间了,不是一个东西。
self.other=other
总之,__init__可以用来声明实例属性,以及进行必要的初始化。
希望能解决您的问题。
追问
不是那个问题吧,应该是toss()的问题啊
我这个怎么改就对了?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询